2016-08-22 60 views
0

比方說,你有查詢:的SQL Server:優化查詢與許多「而像」語句

select columnA, columnB, columnC, columnD 
from tableA 
where columnA like '%hello%' and columnB like '%error%'; 

什麼是一個很好的方式來索引表和多個類似的條件?

你需要一個指標既columnA和columnB指向columnC和columnD

你需要columnA指向B,C,d和columnB指向A,C,D

我不能確定這將是這裏的優化更有幫助....

+0

如果您想使用這些過濾條件,那些列上的索引大多(如果不是完全的話)將毫無意義 – Lamak

+1

由於您有前導通配符,因此索引不會有幫助。 –

+0

Darn,那麼有可能做一些事情,比如說找到匹配第一個類似條件的結果,存儲一個tmp表,然後使用第二個類似條件來從這些結果中篩選出來?這可能會有所幫助嗎? – HumbleWebDev

回答

0

全文搜索(FTS)可以提供幫助,但要注意,它有很多需要注意的地方,相當陡峭的學習曲線以及重大的維護和管理開銷。

而且,不會幫助您在單詞內搜索任意子字符串。也就是說,hello作爲一個單獨的詞(或作爲一個開頭)將被發現,但*ello不會。然而,從你的例子看,這不應該成爲一個問題。