[SQL] TOP 1 與 MAX 速度的比較

前幾天在改 SQL 語法時,在噗浪上問了各位親朋好友一下,為避免「河道後浪推前浪,前浪噗在沙灘上」,所以整理到網誌上來,原先討論請參考此噗:

http://www.plurk.com/p/a8n65m

開發測試環境:Win2003 (RAM 6 GB) + SQL Server Developer 2008 R2

目標資料表全部共 6,426,072 筆資料,設定的 WHERE 條件下共 263,946 筆資料,WHERE 條件欄設定 SN ASC 排序,目標欄 DataTime 設定 DESC 排序。

比較語法:

語法 1

SELECT TOP 1 DataTime FROM Data_Minute WHERE SN=1 ORDER BY DataTime DESC;

語法 2

SELECT MAX (DataTime) FROM Data_Minute WHERE SN=1;

SQL Server Manage Studio 內的執行計畫回報的結果是 (263,946 筆資料)

語法1 : 語法 2 = 96% : 4%

拿掉 WHERE 條件後的比較語法:

語法 1

SELECT TOP 1 DataTime FROM Data_Minute ORDER BY DataTime DESC;

語法 2

SELECT MAX (DataTime) FROM Data_Minute;

SQL Server Manage Studio 內的執行計畫回報的結果是 (6,426,072 筆資料)

語法1 : 語法 2 = 25% : 75%

目前暫無特定結論,我是先用 TOP 1 取代 MAX 就是了。

廣告
Categories: 工作點滴 | 發表留言

文章分頁導航

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

在WordPress.com寫網誌.

%d 位部落客按了讚: