|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre habitué
![]() ![]() Inscription : août 2005 Messages : 130 ![]() |
Bonjour,
j'ai réalisé une store proc composée d'une déclaration, initialisation de variables puis de plusieurs opérations select/update/delete sur des tables (environ 500 000 lignes) avec création de plusieurs tables temporaires. Si j'execute en pas à pas mes instructions j'execute le tout en à peu près 3min. Si j'execute tout d'un coup, on passe à plus de 30min... ![]() Pourquoi???? En séparant mes instructions par des "go" je retrouve les 3min mais j'ai alors le problème de devoir redéclarer les variables à chaque fois, pas terrible.. Quelqu'un aurait il une piste pour m'éclairer? merci bcp d'avance |
|
|
00
|
|
|
#2 |
![]() ![]() |
Le problème vient probablement du plan d'exécution des requêtes, qui dans la version proc stock n'est probablement pas optimal, à priori en raison de l'utilisation de tables temporaires dans la proc. Si ces tables n'ont pas d'indexes alors l'optimiseur va utiliser ses propres à priori pour déterminer le coût d'accès à ces tables.
Il faudrait voir le SHOWPLAN et les STATISTICS IO et TIME pour avoir une meilleur idée, mais tu peux peut-être essayer de créer un index sur la/les table(s) temporaire(s) pour voir si cela fait une différence. Michael
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() ![]() Inscription : août 2005 Messages : 130 ![]() |
MERCI beaucoup!!!!
![]() En rajoutant des index sur chaque table temp intervenant dans une jointure, je n'ai en effet plus de blocage!! Je ne voyais pas l'utilité des index au prime abord puisque en executant une instruction à la fois, il ne me posait pas de problème. Mais en fait si je comprends bien, en mode pas à pas, l'optimiseur analyse les données puis "compile" la nouvelle requete alors qu'en mode store proc, il compile tt de suite tt. Je comprend maintenant un peu mieux la logique de l'optimiseur! Bref merci! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com