如何让已经运行的 PL SQL 包运行得更快?

Posted

技术标签:

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

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

【问题讨论】:

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

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

【讨论】:

以上是关于如何让已经运行的 PL SQL 包运行得更快?的主要内容,如果未能解决你的问题,请参考以下文章

如何让这个 python 代码运行得更快?

如何让python程序运行得更快

这个 git log 命令运行的时间越长,我使用的越多,如何让它运行得更快?

如何让这个查询在 postgres 中运行得更快

如何让scikit-learn Nearest Neighbors算法运行得更快?

有没有办法让这段代码运行得更快