2010年10月10日 星期日

Tech.Days 2010 SQL Server 2008 R2 T-SQL心得

今年Tech.Days有參加楊志強老師SQL 2008 R2 T-SQL技術與建議的課程,覺得獲益良多,因此想寫入以加深印象,以下是 Where Clause使用 Like 子句與 Left的差別

測試環境
Cpu:T4200
Ram:2G
OS:winxp sp3
DB:Microsoft SQL Server 2005 Developer Edition

測試資料表為一訂單主檔資料表,筆數為122798

以下語法為找出2006年9月的訂單

SELECT IssNum
FROM IssMaster
WHERE IssNum LIKE '200609%'

SELECT IssNum
FROM IssMaster
WHERE LEFT(IssNum, 6) = '200609'



可以看出採用 Like子句的成本花費較Left函數來得小,原因在於Like是採用clustered index seek而Left函數會採用index scan,這裡要注意的是如果Like由 '200609%'改為'%200609%'則會變成index scan,相關資料可由google鍵入index seek index scan得到

沒有留言:

張貼留言