我的查詢是這樣的:如何優化JOIN ON LIKE「%」 +名字+「%」
SELECT *
FROM dbo.TestTable TT
JOIN dbo.fnListParseAndSplit('test,tt,zz,er,ts',',') L ON TT.Name like '%' + L.ListMember + '%'
我的問題是,在執行計劃我總是得到索引查找這兩種情況下加入的時候:
T.Name LIKE '%' + L.ListMember + '%'
T.Name像L.ListMember + '%'。
我認爲他們是完全不同的,當加入像'%'+ L.ListMember +'%'我應該得到一個索引掃描。 執行計劃中出現錯誤嗎?或者SQL Server 2008非常聰明,它可以優化我的查詢?
我附上執行計劃。你知道爲什麼我要在TestTabe名稱列上找索引嗎?名稱列有一個唯一的索引...但在這種情況下,我期望掃描而不是查找。
http://softrun.ro/executionplan.png
道歉,我誤解了你在編輯之前所要求的。 – JNK 2010-11-08 19:16:34
沒問題......我不擅長SQL,但我很難解釋這個問題。 – 2010-11-08 19:20:56
請問什麼是查詢計劃? XML還是圖形? – gbn 2010-11-08 20:15:24