【问题标题】:how to handle query execution time (performance issue ) in oracle如何在 oracle 中处理查询执行时间(性能问题)
【发布时间】:2016-05-11 14:05:52
【问题描述】:

我有需要为百万行数据执行补丁脚本的情况。当前查询执行时间不符合几行(18000)的预期,大约需要4个小时(在部署前测试数据以进行实时)。 补丁脚本实际上是循环选择百万行数据并根据规范更新,我只是想知道百万行数据需要多长时间,因为只有 18000 行需要大约 4 小时。

为了克服这个问题,我决定创建临时表来保存整个 select 语句数据,并使用临时表继续修补过程,在此过程中比较 select 和 update 会更快。

还有其他方法可以用来处理这种情况吗?任何解决此问题的建议和方法。

(由于公司政策,我无法在此处发布 PL/SQl 脚本)

【问题讨论】:

    标签: sql oracle oracle-sqldeveloper


    【解决方案1】:

    似乎没有人可以在这里回答我的问题,我发布我的答案。 在 oracle 中有并行执行,它允许将单个 SQL 语句的处理分散到多个线程中。

    所以通过使用这种方法,我将长时间运行的查询(4 小时)解决到 6 minz ..

    更多信息: https://docs.oracle.com/cd/E11882_01/server.112/e25523/parallel002.htm http://www.oracle.com/technetwork/articles/database-performance/geist-parallel-execution-1-1872400.html

    【讨论】:

    • 在没有查询的情况下给出加速查询的提示有点困难。除了并行执行之外,您还应该查看查询的执行计划(请参阅 oracle 文档中的说明)。
    • @UweAllner 是的,我也对此进行了研究并更改了执行计划,因此现在它比我原来的查询更快,感谢您的评论。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-23
    • 2011-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多