IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

Plans d'execution differents


Sujet :

Oracle

  1. #1
    Membre averti

    Inscrit en
    janvier 2005
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : janvier 2005
    Messages : 17
    Points : 368
    Points
    368
    Par défaut Plans d'execution differents
    Nous avons 2 machines, une pour la recette (bi-proc) une pour la production (quadri).

    Ces instances demarent avec le meme init ORA.

    Ces instances ont les memes schémas, et les memes objets ( Tables, Index, ...)

    La MEME requete genere deux plans d'execution differents.

    Avez-vous une idee ?

    Merci

  2. #2
    Membre expert

    Profil pro
    Inscrit en
    février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2006
    Messages : 3 437
    Points : 3 527
    Points
    3 527
    Par défaut
    Est-ce que:
    - vous avez exactement la même version d'Oracle (au patch près) ?
    - on a le même nombre de lignes dans les tables ?
    - les statistiques sont-elles calculées de la même façon ?
    - le paramètre de session OPTIMIZER_MODE est-il le même (s'il est défini dans la session, il a priorité sur celui du init.ora) ?

  3. #3
    Membre averti

    Inscrit en
    janvier 2005
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : janvier 2005
    Messages : 17
    Points : 368
    Points
    368
    Par défaut
    Nos version sont bien les memes.

    Les statistiques sont calculés via une proc qui est identique sur nos deux systeme.

    Le Parametre OPTIMIZER_MODE est bien en mode CHOOSE et il n'a pas ete modifié.

    J'ai reussi a avoir le meme plan en modifiant le parametre CPU_COUNT. J'ai passé ce parametre de 4 à 2 sur une machine de 4 cpu.

    Et la, je ne comprends plus bien le fonctionnement.

    Quid du pourquoi ?

  4. #4
    Membre à l'essai
    Inscrit en
    février 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : février 2004
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Vous utilisez le parallelisme dans vos requêtes ?

  5. #5
    Membre averti

    Inscrit en
    janvier 2005
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : janvier 2005
    Messages : 17
    Points : 368
    Points
    368
    Par défaut
    Comment puis-je le detecter ?

  6. #6
    Membre à l'essai
    Inscrit en
    février 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : février 2004
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    les hints /*+ PARALLEL */

  7. #7
    Membre averti

    Inscrit en
    janvier 2005
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : janvier 2005
    Messages : 17
    Points : 368
    Points
    368
    Par défaut
    Les Hints ne sont pas utilisées dans nos requetes.

  8. #8
    Membre éprouvé
    Inscrit en
    avril 2006
    Messages
    1 024
    Détails du profil
    Informations forums :
    Inscription : avril 2006
    Messages : 1 024
    Points : 1 294
    Points
    1 294
    Par défaut
    Y a-t-il exactement les mêmes données dans les 2 bases ?

  9. #9
    Membre averti

    Inscrit en
    janvier 2005
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : janvier 2005
    Messages : 17
    Points : 368
    Points
    368
    Par défaut
    Il y a les memes schemas, les memes données et les memes statistiques.

    C'est pour cette raisons que j'invoque ce forum.

  10. #10
    Membre éprouvé
    Inscrit en
    avril 2006
    Messages
    1 024
    Détails du profil
    Informations forums :
    Inscription : avril 2006
    Messages : 1 024
    Points : 1 294
    Points
    1 294
    Par défaut
    Citation Envoyé par jajaCode
    J'ai reussi a avoir le meme plan en modifiant le parametre CPU_COUNT. J'ai passé ce parametre de 4 à 2 sur une machine de 4 cpu.
    Tout s'explique non ?

    dans son choix de plan d'exécution, beaucoup de paramètres rentrent en lignes de compte, et les algorythmes de choix sont parfois obscurs et subtil(cachés du public en tout cas). Le nombre de CPU est un de ces paramètres c'est clair, car selon le degré de parallelisme possible, il va choisir des accès FULL ou pas dans certains cas limite.

  11. #11
    Membre expert

    Profil pro
    Inscrit en
    février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2006
    Messages : 3 437
    Points : 3 527
    Points
    3 527
    Par défaut
    Quelle est votre version exacte d'Oracle ?
    Y-a-t-il des objets tables ou index créés avec l'option parallel ?

    parallel_clause
    The parallel_clause lets you parallelize creation of the table and set the default degree of parallelism for queries and DML (INSERT, UPDATE, DELETE, and MERGE) operations on the table after creation.


    --------------------------------------------------------------------------------
    Note:
    The syntax of the parallel_clause supersedes syntax appearing in earlier releases of Oracle. Superseded syntax is still supported for backward compatibility, but may result in slightly different behavior than that documented.

    --------------------------------------------------------------------------------


    NOPARALLEL
    Specify NOPARALLEL for serial execution. This is the default.

    PARALLEL
    Specify PARALLEL if you want Oracle to select a degree of parallelism equal to the number of CPUs available on all participating instances times the value of the PARALLEL_THREADS_PER_CPU initialization parameter.

    PARALLEL integer
    Specification of integer indicates the degree of parallelism, which is the number of parallel threads used in the parallel operation. Each parallel thread may use one or two parallel execution servers. Normally Oracle calculates the optimum degree of parallelism, so it is not necessary for you to specify integer.
    Pouvez-vous donner un exemple de plans d'exécution qui diffère ?

  12. #12
    Membre à l'essai
    Inscrit en
    février 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : février 2004
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    dans la 10GR2 l'algo du CBO se base sur la CPU

  13. #13
    Membre averti

    Inscrit en
    janvier 2005
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : janvier 2005
    Messages : 17
    Points : 368
    Points
    368
    Par défaut
    Il s'agit de la Version 9.2.0.6.
    Les objets (table ou index) sont tous avec l'option : parrallel ( degree default)

    Merci

  14. #14
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : janvier 2004
    Messages : 15 967
    Points : 19 070
    Points
    19 070
    Par défaut
    le parallélisme est forcément impacté par le CPU_COUNT... je pense que la réponse est évidente du coup

Discussions similaires

  1. Quand change le plan d'execution?
    Par kervoaz dans le forum Administration
    Réponses: 17
    Dernier message: 03/12/2007, 11h45
  2. Bind variables et plan d'execution
    Par Wurlitzer dans le forum Oracle
    Réponses: 6
    Dernier message: 26/02/2007, 15h04
  3. [Oracle 10.2] Plan d'execution fonction PL/SQL
    Par pegase06 dans le forum PL/SQL
    Réponses: 6
    Dernier message: 13/02/2007, 13h02
  4. plan d'execution
    Par osoudee dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 09/03/2006, 11h40
  5. do, prepare et execute : difference ?
    Par sohnic dans le forum Langage
    Réponses: 4
    Dernier message: 31/01/2006, 16h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo