问题标签 [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 回答
2538 浏览

sql - 执行 100k 插入语句的最佳方法是什么?

我创建了一组 100k 插入查询来在多个 oracle 表中生成数据以进行性能测试。执行此操作的最佳方法是什么?

过去,我尝试过 Oracle SQL developer 和 Toad 等工具。但是不确定它是否可以处理这么大的容量。

简单的插入语句,如 -

0 投票
3 回答
4554 浏览

python - 如何有效地将大型数据集从 Oracle 提取到文件中?

我有一个 oracle 服务器,我需要使用 python 将数据提取到文件中。这些文件被下游系统用作输入。

很少有技术细节: Oracle 和 Python 在不同的服务器上运行。该数据库是客户端托管的,而所有脚本都在 AWS RHEL EC2 服务器上运行。此屏幕截图中突出显示了 EC2 实例的详细信息。截屏.

我的方法 为此,我选择 Python 的 Pyodbc 库来连接到远程 Oracle 客户端并使用 SQL 查询提取数据。下面是根据提供的 SQL 查询获取数据的代码摘录。

我正在提取的数据集接近 8GB 未压缩大小(返回接近 3500 万行)。在我的 EC2 服务器上下载文件需要大约 1.5 个小时的代码。我测试了 batch_limits 的多种变体,发现 1Million - 2Million 是批量下载数据的最佳大小,但是我不确定是否还有其他方法可以更有效地确定我的批量大小应该是多少。

我还研究了什么 我在网上寻找使用 python 将大型数据集写入文件的方法,许多人建议使用 Pandas。我试图弄清楚这一点,但没有这样做。此外,在将数据提取到文件时保留数据及其数据类型也很重要。

我的问题是:有什么我可以做的更好来让这段代码更有效率吗?Python是最适合这个的语言吗?(请注意,无论我选择什么语言,我都需要能够使工作自动化。由于我公司的内部定价挑战,在这一点上寻找许可库有点困难)。

另外,不确定这是否有帮助,但这是代码下载数据时我的内存使用情况的快照(htop)在此处输入图像描述 在此处输入图像描述

0 投票
2 回答
803 浏览

oracle - 如何在批量收集循环中进行条件处理?

我们有Oracle 11G并且我正在尝试使用bulk collect. 问题是当我试图评估来自 origin 的一个字段是否为空时,我的包已失效。我有的:

宣言:

身体:

但是当我检查身体状态时INVALID

有什么想法吗?

0 投票
0 回答
119 浏览

oracle - 游标循环内的多个 IF

这个问题之后,我无法IF在一个循环中使用不同的 s 语句进行评估,我的执行以ORA-01403: no data found

我有的:

宣言:

身体:

但我得到了ORA-01403: no data found

我也试过:

但是错误是一样的。

那么,当我通过光标评估不同的列多次循环时,您认为我错过了什么?

0 投票
2 回答
3449 浏览

oracle - 从未输入 FORALL 时的 FORALL 和 sql%rowcount

我很好奇你们如何处理根本没有输入的sql%rowcounta之后没有设置的问题。FORALL下面是我如何解决它的示例(使用变量v_rowcount和基于count的集合FORALL)。但我觉得有一种更聪明的方法:

0 投票
2 回答
103 浏览

oracle - oracle 光标 + FORALL 花费时间

我在 Oracle 中编写了下面的脚本,该脚本在表中插入数千行,并使用这些行产生的自动生成的 id 并在其他插入中使用它。

该脚本按预期工作,但问题是它需要时间才能完成。以下是当前每个表的内容的一些细节:

  • table_0 包含 16000+ 行
  • table_1 包含 4000+ 行

使用这些卷,脚本大约需要 15 到 20 秒。问题是我打算使用类似的查询来处理数百万行。

这是脚本调用的函数的代码:

这是脚本本身:

0 投票
1 回答
1385 浏览

oracle - 如何提高此插入语句的性能以获取大量数据?

我需要在我的数据库中插入大量(50GB 的随机数据),以便我可以使用备份应用程序检查重复数据删除率。我写了一个小程序,如下所示

这需要1个多小时。我不知道如何提高性能,以便为插入语句获得良好的吞吐量。我已将 SGA 设置为 16GB。

我是甲骨文的新手。我不知道如何设置并行度来优化我的程序以获得良好的吞吐量。请帮忙。

我的插入脚本:

我已经在安装在 rhel 7 VM 上的 Oracle12c 上尝试过这个过程。Vm 有 32 GB 内存和 20 GB 交换内存和 16 个 vcpus。

它需要1个多小时并且仍在运行。如何实现并行性并优化上述过程以获得良好的吞吐率?

0 投票
3 回答
1334 浏览

oracle - 如何使用并行会话查询快速删除oracle表中的大行

我正在使用提到的查询从我的表中删除 2.5 亿多行,这需要更多时间

我已尝试使用 t_delete 限制,最高为 20000。

仍然缓慢的删除发生。

请在同一代码中提出一些优化建议,以更快地完成我的工作。

0 投票
1 回答
105 浏览

python - 批量插入,更新值 mongodb

我每天都运行批量插入 cron 作业。但是有些值会丢失,当我重新运行数据时,这些值会添加到现有数据中,而不是更新。有没有办法只插入尚未插入的文档。

我的代码:

现在,每次查询运行时它都会重新插入所有值。有没有办法只添加尚未添加的值。

0 投票
1 回答
53 浏览

oracle - 合并需要时间来更新

我正在尝试使用分别具有 2 亿和 30 百万条记录的 REF_TAB 表从表 TAB1 更新一列 CODE,但更新记录需要 3-4 小时。

TAB1.ID 主键上的唯一索引是唯一索引。

我试过合并。有没有其他方法可以提高查询的性能或通过任何其他方式?