Questions tagged «bulk»

2
在PostgreSQL中优化批量更新性能
在Ubuntu 12.04上使用PG 9.1。 目前,我们最多需要24小时才能在数据库上运行大量的UPDATE语句,其形式为: UPDATE table SET field1 = constant1, field2 = constant2, ... WHERE id = constid (我们只是覆盖由ID标识的对象的字段。)这些值来自外部数据源(尚未存在于表的DB中)。 该表每个都有少量索引,没有外键约束。直到结束都不会进行COMMIT。 导入pg_dump整个数据库需要2小时。这似乎是我们应该合理定位的基准。 缺少生成自定义程序以某种方式为PostgreSQL重新构造数据集以重新导入的方法,我们是否可以做些什么使批量UPDATE性能更接近于导入?(这是我们认为日志结构的合并树可以很好处理的一个区域,但是我们想知道PostgreSQL中是否可以做任何事情。) 一些想法: 删除所有非ID索引并随后进行重建? 增加checkpoint_segments,但这实际上有助于持续的长期吞吐量吗? 使用这里提到的技术?(将新数据作为表加载,然后“合并”在新数据中找不到ID的旧数据) 基本上,有很多事情可以尝试,我们不确定最有效的是什么,或者我们是否忽略了其他事情。我们将在接下来的几天中进行实验,但我们也想在这里提出问题。 我确实在表上有并发负载,但是它是只读的。

2
从Postgres批量删除行的最有效方法
我想知道最有效的方法是从PostgreSQL删除大量行,这一过程每天都会是将数据批量导入(插入和删除的增量)到表中的一项重复任务。可能要删除数千行,甚至数百万行。 我有一个主键文件,每行一个。我所考虑的两个选项与以下内容类似,但我对PostgreSQL的内部知识了解不足/不了解,无法做出明智的决定,这是最佳选择。 DELETE使用简单WHERE的主键对文件中的每一行执行查询(或n使用IN()子句分批对删除进行分组) 使用COPY命令将主键导入到临时表中,然后使用连接从主表中删除 任何建议将不胜感激!

3
为什么“ LOAD DATA INFILE”比普通的INSERT语句快?
我读过一篇文章提到,通过使用该语句,可以从csv文件读取数据并将其插入数据库中,从而每秒可以完成60,000次插入LOAD DATA IN FILE。 为什么它与普通刀片不同? 编辑: 我通过只调用一条INSERT语句减少了往返行程: INSERT INTO tblname VALUES (NULL,2,'some text here0'),(NULL,2,'some text here1') ,(NULL,2,'some text here2'),(NULL,2,'some text here3') .....,(NULL,2,'some text here3000'); 那这个呢?
22 mysql  import  bulk 

2
OracleBulkCopy专门做什么,如何优化其性能?
总结细节:我们需要将大约500万行转移到供应商(Oracle)数据库中。使用OracleBulkCopy(ODP.NET)批量处理50万行时一切都很好,但是当我们尝试扩展到5M时,一旦达到1M标记,性能就会开始缓慢爬行,随着更多行的加载,性能会逐渐变慢,最终3小时左右后超时。 我怀疑这是涉及到对表的主键,但我一直在用拖网捕信息的甲骨文论坛和堆栈溢出,很多东西我读的是相矛盾(也很多帖子似乎与对方) 。我希望有人能就与该流程密切相关的一些问题直接记录下来: 请问OracleBulkCopy类使用常规或直接路径加载?有什么方法可以确认这一点吗? 假设它确实使用直接路径加载:Oracle是否在加载期间自动将所有索引设置为不可用,然后将它们重新设置为联机,这是真的吗?我已经阅读了几篇有关此问题的声明,但同样无法确认。 如果#2是true,那么在启动批量复制操作之前,表上的索引应该有什么区别吗?如果是这样,为什么? 与#3相关,通常,在具有无法使用的索引的批量加载与在加载之前实际删除索引并在之后重新创建索引之间,是否有实际的区别? 如果#2 不正确,或者有一些我不了解的警告,那么在大容量加载之前显式使索引不可用,然后在之后显式重建索引 是否有任何区别? 除了索引构建以外,还有其他什么可能会导致随着添加越来越多的记录,批量复制操作的速度逐渐变慢?(也许与日志记录有关,尽管我希望不记录批量操作?) 如果除了先删除PK /索引外,实际上没有其他方法可以使性能降低,我可以采取哪些步骤来确保索引不会完全消失,即,如果与数据库的连接丢失了,过程的中间?
14 oracle  bulk 

3
从带有标题的CSV文件创建表
我正在寻找一种仅基于指定CSV内容生成新MySQL表的方法。我将使用的CSV文件具有以下属性; “ |” 定界的。 第一行指定列名称(标题),也为“ |” 定界的。 列名和顺序不固定。 列数不固定。 文件很大(100万行/ 50列)。 在Excel中,这非常简单,但是对于MySQL来说似乎并非如此(谷歌不走运)。对我应该看的东西有什么建议吗?
12 mysql  csv  import  bulk 

1
以最少的停机时间重新导入大量数据的最佳方法
我每周大约需要导入约500,000条包含IP查找(只读参考)数据的记录(仅三个int / bigint cols)。 我真的不想担心将数据与现有表合并,我希望清除旧表并重新导入。 理想情况下,对数据运行的查询将继续运行(我们不会收到很多查询,可以接受的是,在导入期间它们的运行速度会稍慢一些,但需要提高24/7,所以运行此“时间不足”)。 到目前为止尝试过的事情 SSIS:我创建了一个SSIS包,该包会截断表并导入-运行大约需要30秒(实际上太长)。 临时表:导入到临时表中,进行截断和复制也大约需要30秒钟。 BCP:批量导入也相当慢(由于某种原因,它比SSIS慢(即使没有索引需要维护))-我猜想这与char-> int / bigint事务有关:/ 镜子表?所以,此刻,我想知道如何通过视图读取表,将数据导入到镜像表中以及更改视图以指向该表...这似乎会很快,但是看起来很小对我有点 这似乎应该是一个普遍的问题,但我找不到推荐的做法-任何想法将不胜感激! 谢谢

4
批量数据导入建议
我们正在做一个项目,每天需要从Excel电子表格中导入数据。数据将从预定义模板以及我们的想法中导入,首先,我们将数据上传到临时表中并执行清理操作(删除不必要的信息,在父表中添加新行并获取其FK等)。 我需要知道是否有任何工具或实用程序可以减少我们的工作量。 从不同来源(主要是从Excel电子表格)插入大容量记录的最佳方法是什么?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.