Quale delle seguenti query è più veloce (LIKE vs CONTAINS)?
SELECT * FROM table WHERE Column LIKE '%test%';
o
SELECT * FROM table WHERE Contains(Column, "test");
Quale delle seguenti query è più veloce (LIKE vs CONTAINS)?
SELECT * FROM table WHERE Column LIKE '%test%';
o
SELECT * FROM table WHERE Contains(Column, "test");
Risposte:
Il secondo (supponendo che tu intenda CONTAINSe lo inserisca effettivamente in una query valida) dovrebbe essere più veloce, perché può utilizzare una qualche forma di indice (in questo caso, un indice di testo completo). Naturalmente, questa forma di query è disponibile solo se la colonna si trova in un indice di testo completo. In caso contrario, è disponibile solo il primo modulo.
La prima query, usando LIKE, non sarà in grado di utilizzare un indice, poiché inizia con un carattere jolly, quindi richiederà sempre una scansione completa della tabella.
La CONTAINSquery dovrebbe essere:
SELECT * FROM table WHERE CONTAINS(Column, 'test');
CONTAINS? Che ne dici? La forma originale della domanda aveva Column CONTAIN("%test%",Column)>0quale non era vicino dove valido. Non è ancora del tutto corretto.