【发布时间】:2014-11-06 02:23:27
【问题描述】:
我正在使用 sqlldr 将数据加载到 Oracle RAC(在 Linux 上),并且我正在尝试提高数据加载的性能。我正在使用“直接路径”,并且为 sqlldr 设置了“parallel=true”。此外,由于我的服务器是多核的,因此默认情况下将多线程设置为 true。
现在,我正在考虑将每个服务器上的输入文件拆分为几个块,然后并行加载它们。我了解到可以在 sqlldr 的控制文件中列出多个 INFILE 文件。我的问题是:
- 如果我在单个控制文件中列出多个 INFILE 文件,并启动 一个 sqlldr 实例,它是并行处理这些文件,还是按顺序处理它们?
因为我的另一个选择是并行启动与我在每台服务器上创建的块数量一样多的 sqlldr 实例,而每个 sqlldr 实例都有自己的控制文件,其中仅列出一个 INFILE 文件。但是这个选项只有在 sqlldr 顺序处理多个 INFILE 文件时才有意义。
【问题讨论】:
-
我想我需要并行启动几个 sqlldr 会话,每个会话都有自己的控制文件。检查:docs.oracle.com/database/121/SUTIL/ldr_modes.htm#SUTIL1344
标签: multithreading oracle sql-loader