SELECT Distinct ord_no FROM Orders
ORDER BY ord_no
查詢乙
SELECT ord_no FROM Orders
GROUP BY ord_no
ORDER BY ord_no
訂單TABEL,ord_no爲varchar類型,有重複。這是一個帶有標識列的組合鍵。
- 我可以知道哪個查詢更好嗎?
- 我們如何使用MS SQL Server 2008 R2 (快速版)檢查查詢性能?
SELECT Distinct ord_no FROM Orders
ORDER BY ord_no
查詢乙
SELECT ord_no FROM Orders
GROUP BY ord_no
ORDER BY ord_no
訂單TABEL,ord_no爲varchar類型,有重複。這是一個帶有標識列的組合鍵。
檢查兩個查詢的執行計劃。它們很可能是相同的,特別是對於這樣一個簡單的查詢(在這兩種情況下,您可能會看到一個stream aggregate
運算符,進行分組)。
如果執行計劃相同,那麼在兩者之間沒有(統計上顯着的)性能差異。
話雖如此,只要有疑問,請使用group by
代替distinct
。
您可以在SQL分析器上看到每個查詢以毫秒爲單位的時間量。從管理工作室,轉到工具 - >分析器並在您的數據庫上開始追蹤。運行您的查詢。你可以看到他們的持續時間。請注意,你需要有相當數量的數據才能看出差異。 如果您不是完整版SQL,則可以使用SQL Express Profiler。
GROUP BY一路。 –
相關[當[Distinct和Group By的性能不同?](http://stackoverflow.com/q/10650719/4519059))。 )。 –