|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||||||||
|
Invité régulier
![]() Inscription : juin 2008 Messages : 31 ![]() |
Bonjour à tous, et d'avance je suis desolé si mon sujet n'est pas au bon endroit mais je suis un newbiz dans la communauté de developpez.
Mon soucis est le suivant : Migration d'une base Oracle 8i en 9i, la migration a été effectué par la méthode suivante : Création d'une nouvelle base 9 (j'ai sur dimensionné la mémoire actuellement) Export du schéma de la 8i Import dans la nouvelle base 9i Les 2 machines sont des Solaris8 qui tiennent la route (V880 et V490). Tout est Ok sauf que l'on vient de s'apercevoir qu'une requête simple mettait énormément de temps à ramener des lignes sur la base 9 (45mn) alors que la même requête avec autant de ligne en production ne met que 11s sur la base 8i et ici en dev sur le V880 avec la moitié du nombre de lignes que 6s. Mon premier réflexe a été de vérifier les paramètres mémoires de la base, puis mes param systèmes mais tout me semble OK. Donc par la suite j'ai utilisé les traces et l'outil tkprof, voici les résultats des tests : Code :
Code :
Code :
Test 2 : Lancement de la requête sur la base Oracle9i (la table contient 1 300 000 Lignes) Code :
test 3: Lancement de la requête sur la base Oracle9i (la table contient 1 300 000 Lignes) mais cette fois j'ai crée une seconde table TSTOCK2 identique à la première et avec les même index : Code :
Code :
Merci à tous. |
||||||||||||
|
|
00
|
|
|
#2 | |
|
Membre éprouvé
![]() Inscription : décembre 2007 Messages : 354 ![]() |
Citation:
Maintenant, est-ce-que les stats ont été collectées sur les index?
__________________
Consultant et formateur Oracle |
|
|
|
00
|
|
|
#3 | ||||||||||
|
Invité régulier
![]() Inscription : juin 2008 Messages : 31 ![]() |
Ok en effet j'avais pas mis le plan d'execution :
Pour mémo : Index TSTOCK_FK : index sur MATID TSTOCK_FK3 : index sur SITID Plan du test sous Oracle 8 (test1) Code :
Plan du test sous Oracle9 (test2) Code :
Plan du test sous Oracle 9(test3) Code :
Plan du test 4 sous Oracle9 Code :
Quand à mes stats normalement je les avais recalculé (premiére chose à laquelle j'avais pensé) ... mais je l'avoue via Toad (7). Je viens de relancer une Requête compléte de recalcul de mes stats sur la table et ces index : Code :
Mais par curiosité je croyais que le fait de supprimer les index et de les récréer faisait que les stats étaient inutile à être recalculé ? |
||||||||||
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Les stats ne sont pas calculées automatiquement... le ROWS a 0 laisse à penser qu'elles manquent.
Donc GO pour un DBMS_STATS
|
|
|
00
|
|
|
#5 | ||
|
Invité régulier
![]() Inscription : juin 2008 Messages : 31 ![]() |
Merci pour la réponse, je pense qu'en effet nous sommes sur la bonne voie :
mais lorsque je lance le recalcul des stats j'obtiens ce message d'erreur : Code :
Je précise qu'aprés controle nous avons des erreurs de stats qui sont remontés avec l'import de la base 8 et cela semble être repertorié par un bug oracle. Que l'on peut soit disant contourner lors de l'import par les options ANALYZE=N ou/et RECALCULATE_STATISTICS=Y, pouvez vous me le confimer ? |
||
|
|
00
|
|
|
#6 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
bah si il y a un bug... j'peux pas faire autrement que confirmer
|
|
|
00
|
|
|
#7 |
|
Invité régulier
![]() Inscription : juin 2008 Messages : 31 ![]() |
Bien je vous remercie pour m'avoir mis sur la piste des stats qui je pense était la bonne.
Le bug provient bien de notre version d'oracle 9.2.0.4 qui avec l'option d'import analyze=N : 1) ne provoque plus d'erreur lors de l'import 2) permet d'avoir une base dans un état cohérent et d'avoir nos requêtes qui se mettent à fonctionner correctement, temps et plan d'exécution correct. Seul subsiste le problème de l'exécution du package dbms_stat toujours en erreur sur l'analyse d'un schéma, mais cela est une autre histoire. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com