1

查詢鮮明和GROUP BY - 查詢性能

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類型,有重複。這是一個帶有標識列的組合鍵。

  1. 我可以知道哪個查詢更好嗎?
  2. 我們如何使用MS SQL Server 2008 R2 (快速版)檢查查詢性能?
+1

GROUP BY一路。 –

+0

相關[當[Distinct和Group By的性能不同?](http://stackoverflow.com/q/10650719/4519059))。 )。 –

回答

0

檢查兩個查詢的執行計劃。它們很可能是相同的,特別是對於這樣一個簡單的查詢(在這兩種情況下,您可能會看到一個stream aggregate運算符,進行分組)。

如果執行計劃相同,那麼在兩者之間沒有(統計上顯着的)性能差異。

話雖如此,只要有疑問,請使用group by代替distinct

2

您可以在SQL分析器上看到每個查詢以毫秒爲單位的時間量。從管理工作室,轉到工具 - >分析器並在您的數據庫上開始追蹤。運行您的查詢。你可以看到他們的持續時間。請注意,你需要有相當數量的數據才能看出差異。 如果您不是完整版SQL,則可以使用SQL Express Profiler。