Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

SQL Server:come ottimizzare le query simili?

Fare molto per un LIKE dove il modello ha la forma '%XXX%' , vuoi cercare la funzionalità di indicizzazione full-text di SQL Server e utilizzare CONTAINS invece di LIKE . Così com'è, stai eseguendo una scansione completa della tabella, perché un indice normale non aiuterà con la ricerca di un elemento che inizia con un carattere jolly, ma un indice full-text lo farà.

/* ... */
 WHERE (LTRIM(RTRIM([t0].[DOCREVNO])) = '0') 
   AND (contains([t0].[FIRSTNAME], 'John')) 
   AND (contains([t0].[LASTNAME], 'Smith')) 
   AND (contains([t0].[SSN], '123'))
   AND (contains([t0].[CLIENTNUMBER],'123')) 
   AND (contains([t0].[MDOCNUMBER], '123')) 
   AND ([t0].[CLIENTINDICATOR] = 'ON')