Recherche fulltext - Lent à la première exécution, puis OK...

Résolu
PetitMuf Messages postés 2 Date d'inscription vendredi 18 avril 2008 Statut Membre Dernière intervention 18 novembre 2008 - 4 nov. 2008 à 16:35
PetitMuf Messages postés 2 Date d'inscription vendredi 18 avril 2008 Statut Membre Dernière intervention 18 novembre 2008 - 18 nov. 2008 à 09:52
Bonjour,
   J'ai un problème avec la recherche fulltext sur SQL Server 2005. Lorsque j'execute un requête (quelque soit le prédicat..., mais j'utilise plutôt le FREETEXTTABLE), la première execution dure environ 45 secondes pour retourner seulement... 5 lignes. Ensuite je refais un recherche (en modifiant le texte à rechercher), et ça réponds du tac o tac !!

Et si je n'utilise plus la recherche pendant un moment et que je reviens dessus plus tard (genre 15 ou 20 minutes après), ça recommence, lent d'abord puis OK ensuite. Une idée sur mon problème ???

Merci d'avance !!

2 réponses

PetitMuf Messages postés 2 Date d'inscription vendredi 18 avril 2008 Statut Membre Dernière intervention 18 novembre 2008
18 nov. 2008 à 09:52
En fait, rien à voir avec le cache ou autre problème de performance (j'avais vérifié le plan d'execution et dans les 2 cas, il était identique...) J'ai finalement trouvé la réponse dans un forum de Microsoft, grace aux 45s d'attente qui est en fait un timeout car sql essaie de se connecter sur internet pour vérifier si le certificat du word-breaker n'est pas révoqué ! S'il n'arrive pas au bout de 45s, il arrête.

2 manières de résoudre :
1-> Désactiver les vérification du cértificat par un sp_fulltext_service 'verify_signature', 0;
2-> Modifier les paramètres du winhttp avec le Proxycfg.exe

Plus d'info ici -> http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=2864572&SiteID=17
3
hymnuade Messages postés 39 Date d'inscription mardi 21 décembre 2004 Statut Membre Dernière intervention 15 février 2010
8 nov. 2008 à 14:58
Salut, si tu exécutes des recherches full-text comme n'importe quelle autre requête plusieurs fois d'affilée, tu disposes la première fois d'une mise en cache qui justifie la rapidité de la seconde exécution.
Exemple, fais ta requête, redémarre le service MSSQLSERVER et recommence ta requête, elle mettra le même temps que la première fois. Pourquoi, vide du cache tout simplement.Donc tu dois optimisé le délai de la première requête qui est représentatif du plan d'exécution.
0
Rejoignez-nous