【问题标题】:How to make an already running PL SQL package run faster?如何让已经运行的 PL SQL 包运行得更快?
【发布时间】:2018-09-24 01:39:48
【问题描述】:

有一个 PL SQL 包已被作业调用。我已经运行了这项工作,并且我通过在为每条记录填充的日志表上运行查询来监控进度。有 20k 条记录需要处理。对于前 8-10k 条记录,该代码运行得相当快。之后,速度明显减慢。代码仍在运行,现在非常慢。我检查了所有活动会话,没有任何问题。可以在不终止工作的情况下应用助推器吗?

【问题讨论】:

  • 半开玩笑(半认真):购买更快的 CPU,更多内存等。我从 Facebook 的软件工程师朋友那里听说,这通常是他们让事情变得更快的方式;更新、更强大的硬件比更改已经运行的代码的成本要便宜得多(特别是考虑到对所有更改进行彻底测试、记录更改等的成本时)
  • 特别针对您的问题:“助推器”可能会杀死占用 CPU 或内存资源(或两者)的其他进程,因此可以为您的工作释放它们。这对您来说是一个有效的解决方案吗?只有你知道。
  • 在不了解代码、数据库和它们运行的​​环境的情况下,真的无法回答您的问题。
  • 向我们展示 PL/SQL 包以及它变慢的地方。
  • 不知道这是在做什么工作,这是不可能的。如果仅此而已,应该非常快速地更新 20k 条记录。如果这 20k 中的每一个都有多个操作,那将是一个完全不同的前景。查看代码将有助于作为初学者和环境设置的指示 - 并行、RAC 等。

标签: sql oracle performance


【解决方案1】:

尝试为每处理 5 k 的记录插入提交

【讨论】:

    猜你喜欢
    • 2018-02-11
    • 2011-05-10
    • 2010-11-06
    • 2023-03-26
    • 1970-01-01
    • 2011-04-30
    • 1970-01-01
    • 2017-07-10
    相关资源
    最近更新 更多