How can I optimize/refactor a TSQL “LIKE” clause?

前端 未结 7 734
野的像风
野的像风 2020-12-10 04:50

I have a table with 117000 or so records. I need to perform a search that checks 3 separate fields for a given string pattern.

My where clause is as follows:

7条回答
  •  轮回少年
    2020-12-10 05:27

    If you can't use FullTextSearch you can increase speed in 10 times. Do next:

    1 Add calculated field:

    alter table TableName
    add CalculatedColumnName as upper(Column1 + '|' + Column2...) collate Latin1_General_100_Bin2
    persisted;
    

    2 Add index for calculated field:

    create nonclustered index IDX_TableName_CalculatedColumnName
    on TableName(CalculatedColumnName);
    

    3 Change your query text

    select count(*)
    from TableName
    where CalculatedColumnName like '%' + upper(@ParameterValue) + '%' collate Latin1_General_100_Bin2
    

    Source: http://aboutsqlserver.com/2015/01/20/optimizing-substring-search-performance-in-sql-server

提交回复
热议问题