Oracle查询速度随着新的连接而大大改变

问题描述 投票:0回答:1

我有一个数据库查询,该查询具有对2个表的3个连接(2个自我连接),并在末尾使用order by子句。数据库服务器位于另一个数据库服务器Oracle11g上。我们有一个内部运行此查询的工具很慢(11小时而不是1小时)。

我从日志中获取了此查询,并在Toad 11.5中运行它,起初需要10秒钟(早上-整夜未更改数据库)。然后我转到数据库服务器并运行该工具,将其杀死或让它完成,然后回到Toad并运行此查询,大约需要2-3个小时才能完成,相同的查询没有任何更改。

[请帮助我解决这种奇怪的行为。另外,当查询耗时10秒时,如果删除此命令,则无论如何该信息大约需要500毫秒。

oracle11g database-performance query-performance toad
1个回答
1
投票

TOAD骗了你。它确实返回了前500(或什么)行,但没有返回整个数据集。尝试转到数据集的末尾(Ctrl + End),您将看到它需要花费多少(读取:ages)。

我可以想到的两个选择:

  • 使用driving_site提示,它将在数据库服务器上而不是您当前连接的计算机上强制执行
  • 将过程移至数据库服务器本身,并从本地连接调用它
© www.soinside.com 2019 - 2024. All rights reserved.