Nous venons de mettre à niveau SQL Server 2005 vers SQL Server 2008 R2 et nous avons remarqué des problèmes de performances. La requête ci-dessous était déjà lente mais maintenant, en 2008, elle expire. Nous reconstruisons si vous avez les deux conditions ont permis le catalogue pour vous assurer que son fraîchement préparé sur 2008La requête de texte intégral prend quelques minutes au lieu de secondes inférieures après la mise à niveau
DECLARE @FREETEXT varchar (255) = 'RTE-T'
select Distinct ...
from
DOSSIER_VERSION
inner join
DOSSIER_VERSION_LOCALISED ...
where
CONTAINS(DOSSIER_VERSION.*,@FREETEXT)
or
CONTAINS(DOSSIER_VERSION_LOCALISED.*,@FREETEXT)
La requête prend minutes.
Si vous venez de mettre ce qui suit dans le où
CONTIENT (DOSSIER_VERSION. *, @ FREETEXT)
Son super rapide. Idem pour le cas si son juste
CONTIENT (DOSSIER_VERSION_LOCALISED. *, @ FREETEXT)
Puisque nous OR'ing les résultats que je me attends à ce moment pour cette requête à exécuter pour être inférieure à la somme, mais comme indiqué ci-dessus, cela prend des minutes/fois.
Quelqu'un peut-il me dire ce qui se passe ici? Si j'utilise une union (qui est conceptuellement la même que la ou) le problème de performance est parti mais j'aimerais savoir quel problème je rencontre ici car je veux éviter de réécrire des requêtes.
Cordialement, Tom
duplication possible de [Ajouter plus de recherches OR avec CONTAINS Apporte la requête à l'exploration] (http://stackoverflow.com/questions/2906812/adding-more-or-searches-with-contains-brings-query-to-crawl) –