我有一个数据库查询,在2个表上有3个连接(2个自连接),最后是order by子句。数据库服务器位于另一个数据库服务器Oracle11g上。我们有一个在内部运行此查询的工具,速度很慢(11小时,而不是最多1小时)。
我从日志中抓取了这个查询,并在Toad 11.5中运行它,它首先需要10秒(在早上- db整晚都没有被触及)。然后我去数据库服务器运行这个工具,杀死它或者让它完成,然后我回到Toad并运行这个查询,大约需要2-3个小时才能完成,同样的查询没有任何更改。
请帮我解决这个奇怪的行为。此外,当查询耗时10秒时,删除order by时,如果此信息有任何帮助,则需要大约500毫秒。
发布于 2019-10-24 16:03:23
青蛙骗了你。它确实返回了前500 (或更多)行,但不是整个数据集。尝试转到数据集的末尾(Ctrl + End),您将看到它花费了多少时间(读取:age)。
我能想到两个选择:
driving_site提示,这将强制在数据库服务器上执行,而不是在您当前连接到的计算机上执行调用它
https://stackoverflow.com/questions/58536750
复制相似问题