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

Administration Oracle Discussion :

index, quand les calculer


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 131
    Par défaut index, quand les calculer
    Bonjour,

    Je déplace une table (9i) sur une nouvelle instance (10g).

    La procédure est la suivante:

    1/ création de la table
    2/ copie des données via dblink

    Sur cette table j'ai trois index.

    Est-il plus interessant en terme de temps de générer les index une fois toutes les données présentent, ou bien de créer les index à la suite de la création de la table, avant l'insertion des données ?

    Est ce qu'une méthode est plus avantageuse que l'autre ?

    Merci d'avance.

  2. #2
    Membre Expert Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Par défaut
    ça sera sans doute plus rapide d'insérer les données et ensuite créer l'index que l'inverse
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 38
    Par défaut
    Carrement plus avantageux de créer l'index à la fin !
    raisons :
    • le temps de traitement total sera plus rapide (un seul tri à faire au global, et pas de vérification au fur et à mesure)
    • l'index sera plus compact, et son arbre B-Tree sera propre (donc optimal)

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 131
    Par défaut
    Merci beaucoup pour vos retours.

    Je vais tester ça ^^

  5. #5
    Membre Expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Par défaut
    Attention : si la table est grosse, le calcul de l'index en one-shot à la fin va être long et très consommateur de temp.
    Si vous le créé au début, l'insertion unitaire sera plus lente, certes, mais vous n'aurez pas 20h de calcul d'index ni besoin d'allouer 30 Go de TEMP...

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 131
    Par défaut
    Je "ré-ouvre le post" à la suite de ta remarque.

    Mes index sont partitionnés. Je pense reconstruire par partition, ça me parait plus logique. J'ai pu aussi voir qu'il y avait l'option PARALLEL de disponible, qui semble-t-il permet d'augmenter le nombre de processus qui collecte les informations pour la construction de l'index.

    Certaines de mes tables sont relativement importantes (+300go) donc j'ai effectivement des problématiques de temps qui peuvent apparaître. Je recherche donc des optimisations permettant de gagner du temps ^^

    J'ai vu qu'on pouvait jouer sur la taille de sort area size. Sur asktom j'ai pu récupérer l'info de 150% de la taille de l'index, mais dans mon cas ca peut faire beaucoup 150% ^^

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 354
    Par défaut
    Citation Envoyé par LeoAnderson Voir le message
    Attention : si la table est grosse, le calcul de l'index en one-shot à la fin va être long et très consommateur de temp.
    Si vous le créé au début, l'insertion unitaire sera plus lente, certes, mais vous n'aurez pas 20h de calcul d'index ni besoin d'allouer 30 Go de TEMP...
    Tu as raison sur ce point.
    Maintenant si le choix est entre charger massivement les données en présence de l'index ou charger massivement les données puis créer l'index alors le deuxième choix est meilleur ...

Discussions similaires

  1. Décalage entre les index quand le tableau est triable
    Par Dominique49 dans le forum Composants
    Réponses: 2
    Dernier message: 29/08/2011, 19h44
  2. Réponses: 5
    Dernier message: 22/10/2008, 17h40
  3. Réponses: 4
    Dernier message: 07/06/2007, 15h33
  4. [DB2] Question sur les index et les vues
    Par ahoyeau dans le forum DB2
    Réponses: 1
    Dernier message: 14/03/2005, 08h30
  5. Conserver l'affichage pendant les calculs ?
    Par ceugniet dans le forum C++Builder
    Réponses: 5
    Dernier message: 31/03/2004, 12h19

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