|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Stéphane DemersConsultant E-Business Inscription : juin 2009 Messages : 60 ![]() |
Bonjour!
J’utilise la requête SQL suivante dans un script ASP, qui est en fait un moteur de recherche sur mon site web, accédant à une BD SQL Server en local : Code :
SELECT CONT.TITRE, CONT.DESCRIPTION, CONT.URL, CONT.DATE_MODIF, CONT.IMAGE, PERT.RANK FROM RECHERCHE_CONTENU AS CONT INNER JOIN CONTAINSTABLE (RECHERCHE_CONTENU, CONTENU, 'FORMSOF(INFLECTIONAL, couche)') AS PERT ON CONT.ID = PERT.[KEY]WHERE id_site = 1 ORDER BY PERT.RANK DESC; Je crois donc que le problème, lorsque exécuter sur mon site, en est un de délai d'exécution. Il doit y avoir un index qui se crée la première fois? Ma question est, y a-t-il moyen de soit optimiser le délai d'exécution ASP-SQL, ou soit rafraîchir cet index d'une autre façon? Merci!! |
|
00
|
|
|
#2 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 1 056 ![]() |
Salut
D'après ce que tu décris tu as peut-être un index manquant. Il faudrait poster le plan d'exécution (voir les options d'exécution dans SSMS) Il est normal qu'une requête coûteuse mette plus de temps à la première exec car il faut que SQL Server lit les pages lues sur disques et les mets en mémoire avant de faire ses recherches. Je reprends un vieux post sinon : une application .NET a par un timeout défaut qu'il faut corriger dans le code (connection.CommandTimeout (30 sec par défaut) avec .NET). Je te conseille de le placer à 0 pour une attente infinie ou à une valeur bien plus grande.
__________________
Emmanuel T. |
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Stéphane DemersConsultant E-Business Inscription : juin 2009 Messages : 60 ![]() |
En fait, je suis en ASP classique.
Y a-t-il un équivalent? |
|
00
|
|
|
#4 | ||
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 669 ![]() |
Bonjour,
Citation:
C'est à vous ou à votre DBA de les rechercher, et de les tester. Citation:
Le temps de compilation de la requête peut aussi entrer en jeu. L'extension du timeout n'est pas une solution : je doute que vos visiteurs aient envie d'attendre 20 secondes le résultat d'une requête. Elle doit donc s'exécuter dans un temps minimal. Le fait qu'elle mette longtemps à s'exécuter sous SSMS aurait du vous mettre la puce à l'oreille Il nous faudrait donc pour vous aider la structure de vos tables (sans leurs données) et le plan de requête (CTRL+M dans SSMS avant d'exécuter la requête). @++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
||
|
11
|
|
|
#5 | ||||
|
Membre Expert
![]() Inscription : juin 2007 Messages : 1 056 ![]() |
Citation:
Citation:
Citation:
Citation:
__________________
Emmanuel T. |
||||
|
|
00
|
|
|
#6 | |
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 669 ![]() |
Citation:
En l'exécutant sous SSMS une première fois, puis en l'exécutant ensuite depuis l'applicatif, la requête s'exécute très rapidement. Cela dit, dans le cas de DjSteph, c'est effectivement un "problème" de mise en cache. Dans l'attente du plan de requête @++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
|
|
00
|
|
|
#7 | ||||
|
Nouveau Membre du Club
![]() Stéphane DemersConsultant E-Business Inscription : juin 2009 Messages : 60 ![]() |
Merci pour vos réponses et désolé du délai!
Voici donc le script de ma table principale dans laquelle les requêtes sont faites : Code :
Code :
Et merci d'avance de votre aide!!
|
||||
|
00
|
|
|
#8 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 954 ![]() |
Pouvez vous postez les index de cette table ?
(au moins le résultat de EXEC sp_helpindex) A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
|
|
#9 |
|
Nouveau Membre du Club
![]() Stéphane DemersConsultant E-Business Inscription : juin 2009 Messages : 60 ![]() |
Je ne suis pas certain de comment procéder pour sortir les index... Je fais EXEC sp_helpindex, mais où?
Merci! |
|
00
|
|
|
#10 |
|
Membre Expert
![]() |
sur votre base de donnée... et pour la/les tables concernées
Exemple:
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
|
|
00
|
|
|
#11 | ||
|
Nouveau Membre du Club
![]() Stéphane DemersConsultant E-Business Inscription : juin 2009 Messages : 60 ![]() |
Voilà!
Code :
|
||
|
00
|
|
|
#12 |
|
Membre Expert
![]() |
Vous n'avez d'autres index sur la table que la PK CLUSTERED...
Vu la nature de votre requête (FULLTEXT... et SELECT avec toutes les colonnes de la table) un autre index ne vous servirait ici à rien... Le problème viens du temps de compilation du plan d’exécution de la requête. Avez vous les services packs à jour de SQL SERVER 2008? Les derniers ont résolu plusieurs problèmes d'estimations de cardinalités sur les recherches FULLTEXT... Tenez nous au courant
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
|
|
00
|
|
|
#13 |
|
Nouveau Membre du Club
![]() Stéphane DemersConsultant E-Business Inscription : juin 2009 Messages : 60 ![]() |
J'avais installés les mises à jour, mais j'ai eu des lenteurs affreuses suite à ca.
Je les ai donc désinstallé...Je vais me réessayer... |
|
01
|
|
|
#14 |
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Bonjour,
Qu'appelez vous "la première fois" ? que faites vous entre chaque première fois ? arrêtez-vous le serveur SQL ? Est-ce que votre serveur SQL a accès a internet ? Pouvez vous nous donner le temps de réponse de la "première fois" sous SSMS |
|
|
00
|
|
|
#15 |
|
Nouveau Membre du Club
![]() Stéphane DemersConsultant E-Business Inscription : juin 2009 Messages : 60 ![]() |
Par "première fois", je fais référence à la première fois que le script est exécuté depuis un certain temps (un jour, ou plus, je n'ai pas remarqué).
Ca prend 31 sec à exécuter "la première fois", 00:00:00 sec la 2ème fois, c'est instantané! |
|
00
|
|
|
#16 | ||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
30 secondes...
il y a du timeout dans l'air.... Le moteur full text, décharge le word breaker lorsque celui-ci n'est pas utilisé pendant un certain temps, et le recharge lors d'une requête full text. Lors du chargement, le il tente de vérifier la validité du certificat, ce qui requiert un connexion internet (vous n'avez pas précisé si votre serveur avait une connexion) Vous pouvez tester de connecter le serveur à internet (si vous en avez la possibilité, au moins pour tester), ou alors de désactiver la vérification du certificat : Code SQL :
|
||
|
|
10
|
|
|
#17 |
|
Nouveau Membre du Club
![]() Stéphane DemersConsultant E-Business Inscription : juin 2009 Messages : 60 ![]() |
J'ai essayé ceci :
Code :
sp_fulltext_service 'verify_signature', 0;SELECT CONT.TITRE, CONT.DESCRIPTION, CONT.URL, CONT.DATE_MODIF, CONT.IMAGE, PERT.RANK FROM RECHERCHE_CONTENU AS CONT INNER JOIN CONTAINSTABLE (RECHERCHE_CONTENU, CONTENU, 'FORMSOF(INFLECTIONAL, couche)') AS PERT ON CONT.ID = PERT.[KEY]WHERE id_site = 1 ORDER BY PERT.RANK DESC; Effectivement, MS SQL est accédé en local, je ne crois pas que ce soit ouvert vers l'extérieur. Est-ce que j'ai placé le code à la bonne place? |
|
00
|
|
|
#18 |
|
Nouveau Membre du Club
![]() Stéphane DemersConsultant E-Business Inscription : juin 2009 Messages : 60 ![]() |
Quelqu'un, un expert peut me répondre?
Est-ce que j'ai placé le code de aieeeuuuuu à la bonne place? Code :
sp_fulltext_service 'verify_signature', 0;
|
|
00
|
|
|
#19 |
|
Nouveau Membre du Club
![]() Stéphane DemersConsultant E-Business Inscription : juin 2009 Messages : 60 ![]() |
J'ai mis à jour SQL au plus récent SP... aucun changement....
Toute aide à propos de ce problème sera grandement très beaucoup beaucoup appréciée! |
|
00
|
|
|
#20 |
|
Nouveau Membre du Club
![]() Stéphane DemersConsultant E-Business Inscription : juin 2009 Messages : 60 ![]() |
Allo????
|
|
00
|
Copyright © 2000-2012 - www.developpez.com