2013-04-06 92 views
0

TOP究竟是如何運作的?我已經通過TOP(Transact-SQL)。我知道TOP用於限制結果集。 但我不明白的是讓我說,我指定Select Top(10) from Table where some condition處理表中的前10條記錄後,它可能只包含5條匹配條件的記錄,或它將首先處理所有記錄,然後返回前10條記錄的結果組。SQL server 2008 r2 TOP如何工作?

+3

另請注意:如果沒有'ORDER BY'子句,'TOP(x)'確實沒有任何意義。如果你想要*前10行* - 你總是需要定義這些行如何排序*(按什麼列) – 2013-04-06 07:16:42

回答

0

是的,第二個假設是正確的。

首先它會處理所有記錄,然後返回結果集的前10條記錄。

數據庫引擎將運行查詢,忽略了TOP條款,然後在剛剛結束收縮該結果集下到ñ被請求的行數。

+0

如果你加入查詢或改變行爲,它的工作原理是否類似? – 2013-04-06 05:21:31

0

正確的答案存在於此thread。實際上,SQL Server 2008使用不同的模型來執行查詢。