Rendimento di come ‘% Query%’ rispetto alla ricerca a testo integrale CONTAINS query

Ho una situazione in cui mi piacerebbe cercare una singola parola .

Per quello scenario, quale domanda sarebbe buona dal punto di vista delle prestazioni?

Select Col1, Col2 from Table Where Col1 Like '%Search%' 

o

 Select Col1, Col2 from Table Where Col1 CONTAINS(Col1,'Search') 

?

La ricerca di testo completo (utilizzando i CONTAINS) sarà più veloce / più efficiente rispetto all’utilizzo di LIKE con caratteri jolly. Full Text Searching (FTS) include la possibilità di definire indici di testo completo, che FTS può utilizzare. Non so perché non definirei un indice FTS se intendevi usare la funzionalità …

LIKE con caratteri jolly sul lato sinistro (IE: LIKE '%Search' ) non può utilizzare un indice (supponendo che ne esiste uno per la colonna), garantendo una scansione della tabella. Non ho testato e confrontato, ma regex ha la stessa trappola. Per chiarire, LIKE '%Search' e LIKE '%Search%' non possono utilizzare un indice; LIKE 'Search%' può usare un indice.

Per un database tipico, la ricerca CONTAINS può essere molto più veloce supponendo che l’indice di ricerca full text appropriato sia costruito sul campo cercato. La valutazione dell’operatore LIKE generalmente non usa un indice e quindi deve leggere tutti i dati.

Come cercare su Tavola da solo, ucciderà la performance. Meglio applicare come ricerca su CTE.