2016-08-22 41 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不会。然而,从你的例子看,这不应该成为一个问题。