|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2005 Messages : 40 ![]() |
Bonjour à tous ,
Je rencontre un problème avec une base décisionnelle que j'ai passé de la 8.1.7 a la 10.2.0.1 le 15/01/2008 : certaines requêtes qui duraient une poignée de secondes durent aujourd'hui 40 minutes. J'ajoute que ce sont des requêtes générées par BO, je n'ai pas le pouvoir de les optimiser .... (malheureusement ... Aprés de multiples recherches, il semblerait que le problème arrive lorsque je calcule les stats avec le code suivant (bêtement repris dans un script d'une base de notre erp) Code :
TEST 1 1/ Import des données de la base en 8i vers la base en 10g 2/ J'execute la requête en question, elle dure 25 secondes ![]() 3/ Je balance le script ci-dessus de calcul des stats en supprimant la ligne "ALTER SESSION ....." 4/ J'execute la requête en question, 25 secondes ![]() TEST 2 1/ Import des données de la base en 8i vers la base en 10g 2/ J'execute la requête en question, elle dure 25 secondes ![]() 3/ Je balance le script ci-dessus de calcul des stats en gardant la ligne "ALTER SESSION ....." 4/ J'execute la requête en question, 40 minutes !!! ![]() 5/ J'éxecute le code suivant pour supprimer les stats Code :
sys.dbms_stats.delete_schema_stats(ownname => 'SPI'); ![]() 7/ Je balance le script de calcul des stats en supprimant la ligne "ALTER SESSION ....." 8/ J'execute la requête en question, 40 minutes !!! ![]() CONCLUSION Dans le test 2 (cas dans lequel est ma base de production), les problèmes surviennent a partir de l'étape 3. Comment me débarasser facilement de qui a été calculé a cette étape ? Sachant que le delete_schema_stats ne fonctionne guère dans mon cas. Pour info, lorsque j'ai éxécuté le delete_schema_stats, j'ai vérifié dans le all_tables >>> plus aucune stat .... J'ai délibérement omis de vous envoyer la requête ainsi que les plans de chaque étape, pour garde du recul sur la situation. Si vraiment il y en a besoin, je peux les poster. [10:00] J'ajoute en pieces jointes requete et plan (ex : plan_T2E2 = test 2 , etape 2) |
||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
en principe un calcul de stat doit rendre le plan obsoléte et le parser le recalcule... mais visiblement là c'est pas le cas. Essaye de redémarrer la base et de refaire un essai.
Et surtout, plutôt que supprimer les stats il faut réussir à comprendre pourquoi il y a une telle différence. Rappelles nous la requête et les plans d'exécution obtenu à 25s et 40 min. |
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2005 Messages : 40 ![]() |
Je viens d'ajouter requête et plans sur le premier post
Merci ! |
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
j'imagine que le 1er est moins performant c'est ça ?
|
|
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2005 Messages : 40 ![]() |
le premier plan ? beh non puisqu'il me ramène mes lignes en une poignée de secondes !!! Ce sont les stats calculées dans mon dump (export de la 8i)
Ca me fait penser, il faudrait pê comparer les plans entre TEST1,ETP4 et TEST2, ETP4 puisque c'est a partir de l'étape 3 que tout bascule .... ![]() je vais vous procurer ces pièces manquantes |
|
|
00
|
|
|
#6 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
essaye le hint ORDERED eventuellement
|
|
|
00
|
|
|
#7 |
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2005 Messages : 40 ![]() |
1/ Le redemarrage de base n'a rien donné
2/ Le hint /*+ORDERED */ (c'est ca ?) a bien changé le plan mais la requete tourne encore depuis 10 minutes ! Je pense que la clefs est dans le foutu "alter session ..... " décrit dans le premier post. Qu'est ce qui a bien pu se passer lorsque j'ai calculé les stats en changeant le NLS_NUMERIC_CHARACTERS ??? ![]()
|
|
|
00
|
|
|
#8 | ||
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Citation:
![]() Citation:
|
||
|
|
00
|
|
|
#9 |
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2005 Messages : 40 ![]() |
Ca me fait penser a un test que tu m'avais proposé de faire mais je n'ai pas trouvé de doc permettant de m'aider : comment supprimer les histogrammes ?
|
|
|
00
|
|
|
#10 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
en supprimant les stats
|
|
|
00
|
|
|
#11 |
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2005 Messages : 40 ![]() |
bon bah, je suis pas dans la mouise .....
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com