问题标签 [bulk-operations]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
124 浏览

oracle - PLSQL 脚本优化/调优

我有这个 plsql 脚本。我能够在大约 300 行的测试表上对其进行测试,并且运行良好。但是,当我尝试使用大约 1M 行的实际表运行它时,它没有完成。我想就如何优化我的脚本征求你的建议,我是 plsql 的新手,所以任何想法/建议都会有很大帮助。:)

0 投票
2 回答
4032 浏览

oracle - 程序:在 10000 条记录后提交

这将正常工作

t2 - 3 百万 t4 - 3 百万 我总共有 600 万条记录,由于某种原因,我的临时空间被填满了,所以我想要在插入每 10000 条记录后提交。

怎么做?

0 投票
1 回答
481 浏览

mongodb - MongoDB initializeOrderedBulkOp() :仅当 find() 返回 null 时才更新(推送到数组)

我在 mongodb 中使用批量操作。我有一种情况,如果不满足条件,我需要将对象推送到数组字段中。

configs在这里,如果该匹配项中没有项目itypeprefix,那么它应该将对象推入configs。我怎样才能做到这一点?

架构是这样的:

0 投票
2 回答
20 浏览

oracle - 跟踪更新或加密的行

我想清理(或加密)几张几年前的表格中的电子邮件信息。

这是我计划作为工作的一部分做的,下次当我运行该工作时,我怎样才能省略已经清理或加密的行。

我正在寻找一种性能良好的方法。

0 投票
1 回答
78 浏览

oracle - 从大表oracle中删除大数据

我有一个包含 4 亿条记录的表,其中包含一个 clob 列。表的大小约为 30 GB。

我想从中删除 2.5 亿条记录。

我努力了

  • 传统的小块删除。
  • 创建表作为选择...
  • 插入选择...

所有努力都失败了,因为重做日志被填满,或者发生了一些事情并且会话卡住了一个多小时,所以我终止了会话。

有什么建议或方法可以删除如此庞大的数据?

0 投票
2 回答
462 浏览

sql - 以块的形式移动大量数据

我正在编写一个脚本,其中应根据某些条件查询大量数据并分别移动到某些存档表中。我有超过五千万条记录要扫描并选择匹配的记录,以便对六个存档表执行 INSERT 操作。以下脚本适用于大约一百万条记录,但在运行数百万条记录时会引发以下异常

除了增加 PGA_AGGREGATE _LIMIT 之外,我还想改进我的脚本,避免将所有记录加载到内存中,而是运行脚本并将值分块插入表中。目前我不知道该怎么做。有人可以建议我通过让脚本批量运行来避免内存不足的问题吗

下面是我的脚本的一部分(显示了将值插入四个表)。

0 投票
1 回答
1578 浏览

oracle - 经常删除和重新创建索引是否好

对于具有索引的表,我们遇到了性能问题。加载需要 1 小时,但如果我们删除索引并在每次加载后重新创建它们,它会在 30 分钟内执行。

在每个循环之后删除并重新创建该表的索引是否是一个可行的解决方案?

0 投票
1 回答
893 浏览

oracle - 如何在批处理模式下运行存储过程或在并行处理中运行它

我们正在从全局临时表中迭代 100k+ 条记录。下面的存储过程将一一迭代全球临时表中的所有记录,并且必须处理以下三个步骤。

  1. 查看产品是否存在
  2. 查看资产中的产品是否具有“类别”。
  3. 查看资产的文件名是否以“%pdf%”开头。

因此,每条记录都必须处理这 3 个步骤,最终的文档名称将存储在表中以供成功记录。如果任何步骤中出现任何错误,则将为该记录存储错误消息。

下面的存储过程需要很长时间来处理,因为它是按顺序处理的。

  1. 有没有办法通过批处理来使存储过程本身的这个过程更快?
  2. 如果在存储过程中不可能,那么我们可以将此代码更改为 Java 并以多线程模式运行此代码吗?就像创建 10 个线程,每个线程将同时获取一条记录并处理此代码。如果有人提供一些伪代码,我会很高兴。

将建议哪种方法?

0 投票
1 回答
729 浏览

oracle - Oracle 12c 中的宽表与深表 - 性能影响

甲骨文大师,

我们正在决定设计一个 500 列宽的表与一个 8 列宽但 40 亿行深的表的最佳方法。该表将每周更新一次,每个星期天都会在表中添加新一周(过去的最后一周)的数据。由于数据因周数(财政)而异,我们对上述设计的优缺点有两组想法 -

对于宽表 - 想法是设计一个表,其中包含一个包含 3 个属性列的每个周数,一直追溯到过去 160 周。所以这给了我们 160 x 3 = 480 列宽。这个想法是,每周当我们将上周的数据添加到表中时,我们将从表中删除最旧的周列,并将最新的周列添加到表中。根据 ColA - ColD 上定义的键,该表将包含大约 4000 万行(请参阅下图)。这是示例 -

宽表视图

对于深表 - ColA - ColD 字段保持不变,除了有一个新的周列,该列因 ColA-ColD 上定义的键而异。当我们构建这个表时,我们的想法是只将最近的一周粘贴到带有适当周数的表中,并有一个单独的清除(维护)过程来从表中删除最旧的周行。该表将有大约 40 亿行和 8 列宽。这是一个关于它看起来如何的示例 -

深表视图

我们绝对理解需要在此处按周数对任一表进行分区,无论我们选择哪个表。表格的使用 - 并发用户将多次查询该表格以获取过去 52 周的匹配周数和 ColA 值,并且期望在不到 5 分钟的时间内从中创建报告。我在这里向 Oracle 专家寻求建议,无论您是否根据经验看到一个表宽到近 500 列,并且在我们向表中构建数据时每周都会删除或添加列,以及它如何影响性能用于高度并发的报告生成工具。反过来,

谢谢你,非常感谢你的时间!!布伦登

0 投票
3 回答
3215 浏览

sql - Oracle SQL:如何在 FORALL LOOP 中添加 IF 条件

如果 select_count 不等于 0,我正在尝试将表合并到emp1中。但我无法在 FORALL 循环中添加 select 和 if 语句。谁能帮我实现这一目标?谢谢。

上面的代码抛出错误信息:

PLS-00201:必须声明标识符“I”。