为何此查询永远不会结束?

时间:2016-07-25 20:32:41

标签: sql oracle

我有以下情况

这永远不会结束

SELECT * 
FROM (SELECT A.Column1, A.Column2, A.Column3, A.Column4 
      From Table A 
      ORDER BY A.Column1, A.Column2) 
WHERE ROWNUM < 16

这两个查询运行得更快:

查询#1

SELECT A.Column1, A.Column2, A.Column3, A.Column4 
From Table A 
ORDER BY A.Column1, A.Column2

查询#2

SELECT * 
FROM (SELECT A.Column1, A.Column2, A.Column3, A.Column4 
      From Table A) 
WHERE ROWNUM < 16

正如您所注意到的,在最后一个我删除了ORDER BY

永远不会结束它的查询发生在DataBaseA上,但是当我尝试在DatabaseB上执行它时,它只是快速运行。所以我的问题是它为什么会发生?它是关于索引问题吗?我检查过,TableA在DatabaseA上有2个索引比DatabaseB更多,但是额外的索引在查询不在的列上。

我希望你能帮助我

0 个答案:

没有答案