Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL Server:Wie kann man ähnliche Abfragen optimieren?

Viel zu tun für ein LIKE wobei das Muster die Form '%XXX%' hat , möchten Sie die Volltextindizierungsfunktion von SQL Server nachschlagen und CONTAINS verwenden statt LIKE . So wie es ist, führen Sie einen vollständigen Tabellenscan durch, da ein normaler Index bei der Suche nach einem Element, das mit einem Platzhalter beginnt, nicht hilfreich ist – ein Volltextindex jedoch schon.

/* ... */
 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')