273 votes

COMME vs CONTAINS sur SQL Server

Parmi les requêtes suivantes, laquelle est plus rapide (comme vs CONTAINS) ?

ou

217voto

Damien_The_Unbeliever Points 102139

Le deuxième (en supposant que vous avez les moyens CONTAINS, et les mettre dans une requête valide) devrait être plus rapide, car il peut utiliser certaines forme d'indice (dans ce cas, un index de texte intégral). Bien sûr, cette forme de requête est disponible uniquement si la colonne est dans un index de texte intégral. Si ce n'est pas le cas, seule la première forme est disponible.

La première requête, en utilisant COMME, sera incapable d'utiliser un index, car il commence avec un générique, donc toujours besoin d'un full table scan.


L' CONTAINS de la requête doit être:

SELECT * FROM table WHERE CONTAINS(Column, 'test');

19voto

MI C Points 21

Après avoir exécuté les deux requêtes sur une instance de SQL Server 2012, je peux confirmer que la première requête a été plus rapide dans mon cas.

La requête avec le `` mot-clé a montré un balayage d’index cluster.

Le `` avait également un index ordonné en clusters scan avec des opérateurs supplémentaires pour le match de texte intégral et une jointure de fusion.

Plan

-12voto

Pulkit Gupta Points 18
<pre><code></code><p><pre><code></code></pre><p>vérifie que la colonne contient la chose saine d’esprit ou non. Alors tout d’abord un sera le plus rapide.</p></pre>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X