Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/03/2008, 09h42   #1
Candidat au titre de Membre du Club
 
Inscription : novembre 2005
Messages : 40
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Vendée (Pays de la Loire)

Informations forums :
Inscription : novembre 2005
Messages : 40
Points : 14
Points : 14
Par défaut Supression de statistiques

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 :
1
2
3
connect / AS sysdba
ALTER SESSION SET NLS_NUMERIC_CHARACTERS = '. '; 
EXECUTE dbms_stats.gather_schema_stats(ownname => '&var', method_opt => 'FOR ALL INDEXED COLUMNS SIZE AUTO', cascade=>TRUE,estimate_percent=>60);
Avec les 2 tests suivants, je pense avoir déterminé que c'est le "ALTER SESSION SET NLS_NUMERIC_CHARACTERS = '. '; " avant le calcul des stats qui me pose problème :

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');
6/ J'execute la requête en question, 40 minutes !!!
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)
Images attachées
Type de fichier : gif plan_T2E2.gif (6,5 Ko, 3 affichages)
Type de fichier : gif plan_T2E6.gif (6,8 Ko, 3 affichages)
Fichiers attachés
Type de fichier : txt query.txt (1,4 Ko, 1 affichages)
seko est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2008, 09h52   #2
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
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.
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2008, 10h02   #3
Candidat au titre de Membre du Club
 
Inscription : novembre 2005
Messages : 40
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Vendée (Pays de la Loire)

Informations forums :
Inscription : novembre 2005
Messages : 40
Points : 14
Points : 14
Je viens d'ajouter requête et plans sur le premier post
Merci !
seko est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2008, 10h08   #4
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
j'imagine que le 1er est moins performant c'est ça ?
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2008, 10h12   #5
Candidat au titre de Membre du Club
 
Inscription : novembre 2005
Messages : 40
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Vendée (Pays de la Loire)

Informations forums :
Inscription : novembre 2005
Messages : 40
Points : 14
Points : 14
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
seko est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2008, 10h18   #6
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
essaye le hint ORDERED eventuellement
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2008, 10h42   #7
Candidat au titre de Membre du Club
 
Inscription : novembre 2005
Messages : 40
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Vendée (Pays de la Loire)

Informations forums :
Inscription : novembre 2005
Messages : 40
Points : 14
Points : 14
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 ???
Images attachées
Type de fichier : gif plan_hint_ordered.gif (7,0 Ko, 2 affichages)
seko est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2008, 10h54   #8
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
Citation:
Envoyé par seko Voir le message
2/ Le hint /*+ORDERED */ (c'est ca ?) a bien changé le plan mais la requete tourne encore depuis 10 minutes !
bah y'a plus qu'à changer l'ordre des clauses

Citation:
Envoyé par seko Voir le message
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 ???
si tu as des indexes avec des valeurs numériques ça change probablement les histogrammes mais j'vois pas trop comment puisque ça ne change que l'affichage en principe
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2008, 11h08   #9
Candidat au titre de Membre du Club
 
Inscription : novembre 2005
Messages : 40
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Vendée (Pays de la Loire)

Informations forums :
Inscription : novembre 2005
Messages : 40
Points : 14
Points : 14
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 ?
seko est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2008, 11h09   #10
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
en supprimant les stats
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2008, 11h14   #11
Candidat au titre de Membre du Club
 
Inscription : novembre 2005
Messages : 40
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Vendée (Pays de la Loire)

Informations forums :
Inscription : novembre 2005
Messages : 40
Points : 14
Points : 14
bon bah, je suis pas dans la mouise .....
seko est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h39.


 
 
 
 
Partenaires

Hébergement Web