Temps d'execution d'une procédure stockée : Query Analyzer vs Web app

Signaler
Messages postés
283
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
9 juillet 2010
-
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
-
Bonjour à tous,

Voila j'utilise une procédure sotckée pour récupérer des infos qui se trouvent en base SQL Server 2005 via Asp.Net et C#.

Le problème c'est que cette procédure stockée part parfois en time out (de façon aléatoire) lorsque je l'execute depuis mon application web alors que depuis le server sql elle fonctionne très bien.

j'ai recompiler ma procédure stockée mais le problème persiste toujours.

Quelqu'un aurai-t-il déja eu ce problème? Pourriez-vous me donnez des pistes vers lesquelles creuser pour résoudre ce problème??

Merci pour toute l'aide que vous me fournirez.

6 réponses

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
Salut

Le timeout de ado.net est par défaut de 30s
donc si la requete mais plus de temps
elle sera en timeout


Il y a pas de timeout dans l'analyseur de requete.

Pistes :

La plus mauvaise
augmenté le timeout de la requete

Les meilleures
* ajout d'index (ou supprssion si besoin)
* repenser la requete
* optimiser la requete
(exemple pas de *, des inner join, à la place des left join selon le cas)
analyser avec le plan d'execution et le profiler.
Les like a éviter
Les curseurs a éviter
Filtrer au maximum
Les or a éviter

Et plein d'autres choses.
Messages postés
283
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
9 juillet 2010
3
merci pour ta réponse nhervagault.
Je vais essayer les différentes pistes que tu me conseille.

par contre ce que j'aimerai savoir c'est pourquoi ma requête met plus de 30s à s'executer via la Web App et moins de temps via le Query Analyzer (durée < 30s)
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
Je ne connais pas ton appli.

Mais si il y a un contexte transactionnel en plus ca peut expliquer.

Je suis partie du principe que la requete était longue.

Il suffit aussi que les connexions ne soient pas libérées correctement.
Un open connexion --> un close connexion.

Difficile de savoir.
Messages postés
283
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
9 juillet 2010
3
ok et encor merci pour tes informations.
Je vais déjà voir ces différentes pistes et voir ce que cela donne.

Bonne journée
Messages postés
283
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
9 juillet 2010
3
juste une derniere question.
Est ce que le fait d'éxécuter une procédure stockée de plusieur centaines de lignes ou plusieurs petites procédures stockées (d'une dizaine de lignes) peut avoir un impact quelconque?
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
Pas d'idée sur la question.

Il y a peut etre des changements de contextes et autres (calculs de stats, compilation) a prendre en compte

Donc pour moi 1 proc est plus rapide de 10