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 :

CREATION INDEX en mode parallel


Sujet :

Oracle

  1. #1
    Membre confirmé
    Homme Profil pro
    Consultant
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Par défaut CREATION INDEX en mode parallel
    Bonjour ,
    Je souhaite créer un index volumineux 15Go sur une base oracle 9.2.0.1.
    L'opération dure 7 heures !!!
    Pour optimiser le temps de traitement , j'ai essayé de paralléliser (degré 4) l'opération en NOLOGGING biensûr :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SQL>Alter session enable parallel DDL;
    SQL>CREATE INDEX idx_cli
       ON CLI(CLI_ID , DEP_ID ,TYPE_ID)
    PARALLEL 4
    NOLOGGING;
    mais aucune réponse SQL*Plus (blocage)
    J'ai essayé de regarder dans v$session_longops : vide !!!!
    Quelles paramètres à fixer pour faire fonctionner le // ?
    une idée ? Merci.
    Pour info : parallel_max_servers = 5

  2. #2
    Membre Expert

    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    536
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 536
    Par défaut
    Dans quoi le temps de création de cet index est consommé? CPU ou I/O?

    Utilisez-vous une PGA manuelle ou une PGA automatique?
    Quelle est la taille de "sort area size" ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from v$pgastat;
    Pour trouver les limites de mémoire pour votre release.

  3. #3
    Membre confirmé
    Homme Profil pro
    Consultant
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Par défaut SELECT * FROM v$pgastat
    sort_area_size=1048576 bytes

    SQL> SELECT * FROM v$pgastat
    NAME VALUE UNIT
    ------------------------------------------ ---------- ------
    aggregate PGA target parameter 20971520 bytes
    aggregate PGA auto target 9221120 bytes
    global memory bound 1048576 bytes
    total PGA inuse 10814464 bytes
    total PGA allocated 59012096 bytes
    maximum PGA allocated 102353920 bytes
    total freeable PGA memory 655360 bytes
    PGA memory freed back to OS 1552547840 bytes
    total PGA used for auto workareas 237568 bytes
    maximum PGA used for auto workareas 7420928 bytes
    total PGA used for manual workareas 0 bytes
    maximum PGA used for manual workareas 28975104 bytes
    over allocation count 660
    bytes processed 2.0208E+11 bytes
    extra bytes read/written 7.9063E+11 bytes
    cache hit percentage 20.35 percent

  4. #4
    Membre émérite
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2007
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Novembre 2007
    Messages : 419
    Par défaut
    bonjour,

    il n'y aurait pas un problème de TEMP plein?
    as-tu jeté un oeil à l'alert.log de la base?
    est-ce tu vois les extents s'allouer?

  5. #5
    Membre confirmé
    Homme Profil pro
    Consultant
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Par défaut
    Rien à signaler dans le fichier alert.log.
    Je ne vois pas les extents s'allouer ...

    Citation Envoyé par Heaven93 Voir le message
    bonjour,

    il n'y aurait pas un problème de TEMP plein?
    as-tu jeté un oeil à l'alert.log de la base?
    est-ce tu vois les extents s'allouer?

  6. #6
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    Un index de 15Gb n'a pourtant rien de volumineux.

    Bon, vu que tu as une base poubelle de 10 ans (oracle 9.2.0.1), tu as sans doute aussi un système boulet, non ?

    Créer un index en nologging dans le but de le créer plus vite sans comprendre à quoi sert de créer un index logging est un manque de jugement. En cas, de restore ou de clone, tu ne pourras plus imployer ton index ni insérer dans la table.

    Et puis parallel 4 c'est bon quand on partitionne. En général en simple create index suffit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SQL> create index i on t(x);
     
    Index created.
     
    Elapsed: 00:05:26.72
     
    SQL> select bytes from user_segments where segment_name='I';
     
               BYTES
    ----------------
      12,348,030,976
    12min pour 12g sur ma machine de test.

  7. #7
    Membre confirmé
    Homme Profil pro
    Consultant
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Par défaut
    Comment expliquer 7 heures pour créer mon index de 15 Go alors ?
    comment diminuer la durée ?
    Merci.

  8. #8
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    difficile de dire, il faudrait une analyse detaillée du temps. Si ta table est très grosses, très fragmentée, alors de lire toute la table prendra un temps considérable. Il faut aussi voir quels sont tes performances I/O, si tu as un disque local ou un SAN les performances peuvent différer. Quoi que sur mon portable avec deux disques SSD j'obtiens des perfs comparables aux SAN high-end :-)

Discussions similaires

  1. Creation index rues
    Par Cilou38 dans le forum Excel
    Réponses: 9
    Dernier message: 19/01/2009, 09h55
  2. mode parallel de matlab
    Par LMU2S dans le forum MATLAB
    Réponses: 1
    Dernier message: 20/03/2008, 17h08
  3. mode parallel de matlab : pmode (p>>)
    Par LMU2S dans le forum MATLAB
    Réponses: 6
    Dernier message: 29/02/2008, 13h33
  4. couleur indexé en mode RGBA
    Par troopa dans le forum OpenGL
    Réponses: 26
    Dernier message: 27/03/2007, 11h33
  5. Réponses: 4
    Dernier message: 23/09/2005, 09h16

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