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

yanis7518 Messages postés 283 Date d'inscription mercredi 7 décembre 2005 Statut Membre Dernière intervention 9 juillet 2010 - 12 août 2009 à 10:49
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 - 12 août 2009 à 14:37
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

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
12 août 2009 à 13:17
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.
0
yanis7518 Messages postés 283 Date d'inscription mercredi 7 décembre 2005 Statut Membre Dernière intervention 9 juillet 2010 3
12 août 2009 à 13:21
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)
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
12 août 2009 à 13:39
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.
0
yanis7518 Messages postés 283 Date d'inscription mercredi 7 décembre 2005 Statut Membre Dernière intervention 9 juillet 2010 3
12 août 2009 à 13:57
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yanis7518 Messages postés 283 Date d'inscription mercredi 7 décembre 2005 Statut Membre Dernière intervention 9 juillet 2010 3
12 août 2009 à 14:32
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?
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
12 août 2009 à 14:37
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
0
Rejoignez-nous