<< 前期提要 在這 >>
在前天發現使用「like '%'+@LastName+'%'」會讓執行計劃(Execution Plan)跑出索引搜尋(Seek)後,因為我還是無法確定這是否是有效的,鼓起勇氣在隔天中午寫了封信詢問公司的前輩Sky大大,終於在當天下午5點多,應該是很繁忙的Sky大回了信給我,肯定了我的測試,並且也幫我修正了一個小地方,而修正後的查詢指令(SQL Script)才真正的用到 Seek,信中指令如下:
2011/04/27
2011/04/25
關於 SQL Server 執行 like 時的索引使用的有趣情形
今天在複習SQL效能調校內容時遇到一個有趣的情形,我不確定這是不是對效能真的有幫助或也許只是SQL Server的一個bug,總之,先記錄下來,詳情如下,
--測試環境: --SQL Server 2008 Standard Edition x86 --SQL Server 2005 SP2 Developer Edition x86 use AdventureWorks go --在Person.Contact建立個Covering Index create index icl_LastName_Title on Person.Contact(LastName, Title) include(ContactID, FirstName) go --1. 會用索引搜尋(seek) select ContactID, Title, LastName, FirstName from Person.Contact where LastName like 'Adams%' and Title like 'Mr%' --2. 會用索引掃描(scan), 所以每個教學在測完1,2後提醒大家like時不要用前面的'%' select ContactID, Title, LastName, FirstName from Person.Contact where LastName like '%Adams%' and Title like '%Mr%' --3. 會用索引掃描(scan), 這個先放著,是為了4,5對照用 select ContactID, Title, LastName, FirstName from Person.Contact where LastName like '%%' and Title like '%%' --等等要用的變數 declare @LastName nvarchar(50) declare @Title nvarchar(8) set @LastName='' --'Adams' set @Title='' --'Mr.' --4. 常用的選擇性查詢條件的做法, 會用索引掃描(scan) select ContactID, Title, LastName, FirstName from Person.Contact where (LastName like '%'+@LastName+'%' or @LastName='') and (Title like '%'+@Title+'%' or @Title='') --5. *有趣的事在這邊* -- 把4.的「or @xxx=''」拿掉後, 目的還是相同的, -- 而且@xxx在空字串''的情況下, 5.和3.應該是一樣的, -- 但是, 5.會用索引搜尋(seek)+巢狀迴圈內部聯結(join) select ContactID, Title, LastName, FirstName from Person.Contact where LastName like '%'+@LastName+'%' and Title like '%'+@Title+'%' go跳轉後可以看執行計劃的抓圖...
2011/04/22
新書資訊「為什麼你沒看見大猩猩?」
不曉得去年你有沒有看過一個SAP CRM的廣告,內容要你計算兩隊中白隊傳了幾球?
但其實有個更有趣的測試在裡面,沒看過或想重看?請參考以下連結(該格主還有更棒的解說^^):何以視若無睹 | 家儒的筆記
現在,內容中實驗的作者出書了,詳情請看:為什麼你沒看見大猩猩?
但其實有個更有趣的測試在裡面,沒看過或想重看?請參考以下連結(該格主還有更棒的解說^^):何以視若無睹 | 家儒的筆記
現在,內容中實驗的作者出書了,詳情請看:為什麼你沒看見大猩猩?
2011/04/21
加上了手機版版面
主要要先開啟Blogger in Draft(就是測試版的意思),就可以在設定中開啟Mobile版型了。詳情可參考"貓箱 - Blogger的Mobile Template"(感謝貓箱^^)
- Posted using BlogPress from my iPhone
- Posted using BlogPress from my iPhone
2011/04/20
今日一噗
嗯...暫時先用內建功能組合一下,主要先分享我平常在看的東西,慢慢的再來改版面吧(Google Reader 的分享小區塊好醜阿)。
訂閱:
文章 (Atom)