【问题标题】:How does SQLLDR manages multiple processes on an OS?SQLLDR 如何管理操作系统上的多个进程?
【发布时间】:2021-06-10 02:08:41
【问题描述】:

在 SQL Loader 中,我想问一下是否有人知道操作系统中的进程可以同时启动的限制?

例如,我的代码分拆 20 个进程以同时加载 20 组数据,每个进程都启动一个新的 SQL 加载器。

在 oracle 中每个设置为同一张表。所以在第一次调用时,操作系统上的 SQL Loader.exe 被赋予了 20 个要加载的东西。

这会导致 20 个单独的 sqlldr 进程实例吗?或者 SQL Loader 是否将每个调用排队到单个进程?我正在尝试确定此过程中是否存在瓶颈,以及是否应该构建一种方法来控制每个进程何时上传而不是轰炸 sqlldr。

ctl 文件不是直接加载的,表不是外部的。

Oracle 12 和 Red Hat Linux 服务器。

我看过这个:Does Oracle sqlldr process multiple INFILE in parallel,但我不确定解释该答案的文档在哪里,我一直在寻找。

【问题讨论】:

    标签: linux oracle sql-loader


    【解决方案1】:

    SQL 加载程序是单个进程。如果要并行化负载,则需要同时运行多个 sql 加载程序进程。您还需要控制文件中的 parallel=true 指令。

    但是,在许多情况下,使用外部表更容易、更高效。

    【讨论】:

    • 谢谢你——我是这么认为的,我读到了,但我有点想知道,如果有 300 个不同的 sql 加载器进程在运行——那会崩溃还是有可能?跨度>
    • @Peyter 这将取决于您拥有的物理资源。数据加载通常受 CPU 限制(除非您通过慢速网络加载),因此您需要一台 300 核机器来运行 300 个并发加载程序进程。但这是可能的,而且我过去也这样做过。
    • 很高兴知道,我需要确认,即使在阅读之后。 BobC FTW :)))
    猜你喜欢
    • 2019-02-17
    • 1970-01-01
    • 2011-08-11
    • 2014-05-22
    • 2022-10-14
    • 1970-01-01
    • 1970-01-01
    • 2013-05-21
    • 2019-01-30
    相关资源
    最近更新 更多