|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() fabrice desalle Inscription : décembre 2009 Messages : 7 ![]() |
Bonjour,
Je suis désespéré... ![]() Je suis en train de migrer un Datawarehouse de Oracle 9 (9.2.0.7.0) vers Oracle 11 (11.1.0.6.0) sous LINUX REDHAT. J'ai une bête requête d'UPDATE sur une table avec un Index (plus basique, je ne peux pas) Mes statistiques sur la table sont toutes fraîches. Sous Oracle 9 > 1 min Sous Oracle 11 > 30 à 50 min J'ai modifié l'OPTIMIZER_MODE de Oracle 11 en le mettant sur CHOOSE à la place de ALL_ROWS pour être dans les mêmes conditions que dans mon Oracle 9. Le plan d'exécution est le même MIS A PART que j'ai un HASH UNIQUE sous 11 et SORT UNIQUE sous 9. Il passe bien par l'index... Quelqu'un a-t-il une idée? Merci, merci, merci... |
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 311 ![]() |
Avec seulement ces informations vous ne pouvez que mettre la base en compatibilité 9 et croiser les doigts.
Sinon essayez de suivrez le conseils du Mouhamed.Houri dans ce poste |
|
|
00
|
|
|
#3 |
|
Membre expérimenté
![]() Mohamed HouriInscription : mars 2010 Messages : 286 ![]() |
Avez vous essayé de faire ceci dans la release 11
Code :
ALTER session SET optimizer_features_enable='9.2.0.7.0'; |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() fabrice desalle Inscription : décembre 2009 Messages : 7 ![]() |
Le fait de faire ALTER session SET optimizer_features_enable='9.2.0'; ne change pas le plan d'exécution et la requête est toujours dans les choux.
Je ne sais pas si vous avez besoin d'autres informations mais je me demande quels sont les différences entre Oracle 9 et Oracle 11. Une autre différence que je viens de noter grâce à TOAD, c'est que dans le cas d'Oracle 9, j'ai une Long Ops et pas dans Oracle 11. En tout cas, merci pour vos prompts réponses!!! |
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Inscription : août 2009 Messages : 779 ![]() |
Les statistiques peuvent avoir été calculées différemment, avec des histogrammes ne portant pas sur les même colonnes, etc. Avoir quelques traces ne ferait pas de mal
|
|
|
00
|
|
|
#6 |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 311 ![]() |
|
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() fabrice desalle Inscription : décembre 2009 Messages : 7 ![]() |
Ah, bien vu.
Une autre différence entre ma table sous Oracle 9, Histogram = YES, par contre sur ma table sous Oracle 11, Histogram = NONE; Je cherche la manière de les mettre sur YES!!! En tout cas, merci pour ce nouvel éclaircissement! |
|
|
00
|
|
|
#8 |
|
Membre éprouvé
![]() Administrateur de base de données Inscription : novembre 2007 Messages : 341 ![]() |
c'est bizarre que ce soit dans ce sens. il me semblait que par défaut en 9i il n'y avait pas d'histogrammes.
donc s'il n'y en a pas en 11g alors que normalement il devrait, c'est que ces histogrammes peuvent avoir été deletés. tu les as calculées comment les stats? tu as laissé oracle calculer ou bien tu as fait ce calcul manuellement? et dans ce cas avec quelle commande? le paramètre de dbms_stats qui conditionne le calcul d'histogrammes est METHOD_OPT et il peut faire du chirurgical comme on peut laisser faire Oracle. tu veux mettre tes histogrammes sur quelles colonnes, avec combien de buckets? |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com