我有一个数据库查询,该查询具有对2个表的3个连接(2个自我连接),并在末尾使用order by子句。数据库服务器位于另一个数据库服务器Oracle11g上。我们有一个内部运行此查询的工具很慢(11小时而不是1小时)。
我从日志中获取了此查询,并在Toad 11.5中运行它,起初需要10秒钟(早上-整夜未更改数据库)。然后我转到数据库服务器并运行该工具,将其杀死或让它完成,然后回到Toad并运行此查询,大约需要2-3个小时才能完成,相同的查询没有任何更改。
[请帮助我解决这种奇怪的行为。另外,当查询耗时10秒时,如果删除此命令,则无论如何该信息大约需要500毫秒。
TOAD骗了你。它确实返回了前500(或什么)行,但没有返回整个数据集。尝试转到数据集的末尾(Ctrl + End),您将看到它需要花费多少(读取:ages)。
我可以想到的两个选择:
driving_site
提示,它将在数据库服务器上而不是您当前连接的计算机上强制执行