gpt4 book ai didi

sql - 用于批量上传的 INSERT 命令或 SQL Loader 哪个更有效 - ORACLE 11g R2

转载 作者:行者123 更新时间:2023-12-04 23:22:14 26 4
gpt4 key购买 nike

作为新流程要求的一部分,我们将创建包含大约 3000 - 4000 条记录的表。我们在 txt 文件中有这些记录的纯文本副本。

在表中加载这些记录让我有两个选择

  • 使用 shell 脚本为这些记录生成包含 INSERT 语句的 SQL 文件
  • 通过使用 awk、shell 变量和循环来创建 sql 并执行此 sql 的脚本,我们可以轻松地执行
  • SQL 加载器的使用。
  • 记录列表的重新排列和 ctl 文件生成的唯一依赖项。

  • 就占用 DB 资源、在要执行此操作的客户端服务器上的利用率而言,以上两个选项中的哪一个最有效。

    我确实意识到记录的数量相当少,但我们可能必须用更多的记录(接近 60,000)来重复此事件,在这种情况下,我希望从一开始就配置最佳选项。

    最佳答案

    SQL*Loader是更有效的方法。它为您提供更多控制权。您可以选择做 DIRECT加载和 NOLOGGING ,这将减少重做日志的生成,并且当索引被禁用(作为直接加载的一部分)时,加载速度会更快。缺点是,如果负载中断,索引会被留下 unusable .

    但是,考虑到优势,SQL*Loader是最好的方法。当您拥有数百万条记录并同时运行如此多的加载作业时,您会感受到不同。我听到 DBA 提示日志大小,当我们这样做时 CONVENTIONAL INSERT语句加载,有 200 多个这样的作业,并行运行。数据量越大,您将看到的性能差异越大。

    关于sql - 用于批量上传的 INSERT 命令或 SQL Loader 哪个更有效 - ORACLE 11g R2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21059324/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com