如果我寫一個查詢:
SELECT TOP(10)
FROM table
ORDER BY name
TSQL是先取前10個元素,然后對這些元素進行排序,還是先對全表進行ORDER,然后回傳全表的前10個元素?
uj5u.com熱心網友回復:
TSQL必須對元素進行排序然后取這些排序元素的TOPN。為了提高效率,排序應該需要一個索引,以便不做全表排序。也就是說,有了索引,排序就不會在每次查詢中發生,所以TOP N可以利用這個事實。
你的問題可以在SSMS的解釋計劃UI中得到更直觀和直接的解釋。
至于你問題的標題,與內容略有不同。ORDERBY本身并沒有對TOP進行 "優化",但它是一個要求。你的問題的評論者注意到了這一點。
。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/328423.html
標籤:
下一篇:洗掉圖例中的空間(ggplot)
