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 partitionné, seul ou accompagné ?


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de olivanto
    Responsable d'exploitation informatique
    Inscrit en
    Mars 2005
    Messages
    513
    Détails du profil
    Informations professionnelles :
    Activité : Responsable d'exploitation informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2005
    Messages : 513
    Par défaut index partitionné, seul ou accompagné ?
    bonjour,

    En parcourant les questions (toujours en quete de savoir...), j'ai vu qu'on pouvait partitionner un index, plutôt que la table elle-même. Soit.
    Je viens d'essayer, avec un petit + sur certaines tables (de type comptables), rien sur d'autres . (je vérifie avec v$sqlarea).

    Question ; comment se comporte ce type d'index si d'autres index sont présents ? Doit-il être seul pour mieux fonctionner ? Peut on donner une priorité à certains index ? Et comment ?

    Par exemple, une table stockant depuis 1901 toutes les jolies filles , avec un index sur la date de naissance et l'ID de la personne, et aussi un index partitionné sur le siècle (permettant normalement un accès plus rapide en cas de select/update avec ce paramètre renseigné)... Est ce bon ?

  2. #2
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Le partitionnement d'index n'a d'intérêt que si l'index lui-même est TRES gros et qu'une recherche dans l'index est très longue. J'ai vu des perfs améliorés sur un partitionnement d'index uniquement sur des tables de plusieurs dizaine de millions d'enregistrement et un index avec une très grande cardinalités.

  3. #3
    Membre éclairé Avatar de olivanto
    Responsable d'exploitation informatique
    Inscrit en
    Mars 2005
    Messages
    513
    Détails du profil
    Informations professionnelles :
    Activité : Responsable d'exploitation informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2005
    Messages : 513
    Par défaut
    J'ai du mal à suivre.

    Qu'entendez vous par 'si l'index est très gros' ? Parlez vous, du champ sur lequel porte l'index (si oui, comment pourrait-il être très gros) ?

    J'ai vu un progrès significatif sur une table assez faible en taille pour vous visiblement (un peu plus d'un million de ligne); mais j'ai bien l'intention de tester sur des tables de moindre taille, dans l'espoir que l'accès aux différentes partition offre un accès plus rapide dans certains cas (recherche ou update global avec le champ indexé en paramètre)

    Enfin, que voulez vous dire par 'index avec une très grande cardinalités' ?

    Merci !

  4. #4
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Citation Envoyé par olivanto Voir le message
    Qu'entendez vous par 'si l'index est très gros' ? Parlez vous, du champ sur lequel porte l'index (si oui, comment pourrait-il être très gros) ?
    C'est plus simple d'avoir un index pour retrouver une info dans une encyclopédie de 30 volumes mais si l'index fait 300 pages faut trouver une manière de faciliter la recherche... c'est le but du partitionnement d'index

    Citation Envoyé par olivanto Voir le message
    J'ai vu un progrès significatif sur une table assez faible en taille pour vous visiblement
    Comparé à un index non partitionné ?

    Citation Envoyé par olivanto Voir le message
    Enfin, que voulez vous dire par 'index avec une très grande cardinalités' ?
    qui a bcp de valeurs distinctes comme un index unique par exemple

  5. #5
    Membre éclairé Avatar de olivanto
    Responsable d'exploitation informatique
    Inscrit en
    Mars 2005
    Messages
    513
    Détails du profil
    Informations professionnelles :
    Activité : Responsable d'exploitation informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2005
    Messages : 513
    Par défaut
    okay........c'est plus clair, merci.

    "Comparé à un index non partitionné ?" :

    - oui, tout à fait. La différence est assez énorme sur une requete simple avec des agrégats, dont le principal critère est justement le champ indexé de manière partitionné
    avant ; V$.ELAPSED_TIME donne 6.973.123 (en moyenne)
    après ; V$.ELAPSED_TIME donne 885.461 (en moyenne)
    En gros, huit fois plus vite.

    Maintenant c'est clair que sur mes tables de petit volume, le gain est plus une satisfaction de DBA amateur qu'un réel besoin utilisateur car il est réduit (1mS en moyenne...), mais cela ne peut pas faire de mal....

    J'ai encore trois questions...après j'arrête !

    - dans quel partition vont les tuples d'un table dont le champ servant à l'index partitionné n'est pas rempli ?

    - par défaut Oracle crée l'index dans le tablespace SYSTEM .... j'ai crée le mien dans le tablespace INDX...c'est "plus mieux", non ?

    - après avoir crér l'index partionné, vaut-il mieux reconstruire tous les index de la table ?

    Et merci encore.

  6. #6
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Citation Envoyé par olivanto Voir le message
    - oui, tout à fait. La différence est assez énorme sur une requete simple avec des agrégats, dont le principal critère est justement le champ indexé
    En effet ça peut être spectaculaire

    Citation Envoyé par olivanto Voir le message
    - dans quel partition vont les tuples d'un table dont le champ servant à l'index partitionné n'est pas rempli ?
    Ca dépend du critère de partitionnement mais probablement dans la partition de débordement (qui ne répond à aucun des critères de partitionnement)

    Citation Envoyé par olivanto Voir le message
    - par défaut Oracle crée l'index dans le tablespace SYSTEM .... j'ai crée le mien dans le tablespace INDX...c'est "plus mieux", non ?
    Sans aucun doute puisque le tablespace SYSTEM est difficilement réorganisable. Il faut le réserver au catalogue uniquement.

    Citation Envoyé par olivanto Voir le message
    - après avoir crér l'index partionné, vaut-il mieux reconstruire tous les index de la table ?
    Pas du tout, l'index vit sa vie, il ne perturbe pas la table et ses indexes

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Statut N/A d'un index partitionné
    Par GoLDoZ dans le forum Administration
    Réponses: 2
    Dernier message: 15/11/2011, 14h09
  2. SQL Loader et index partitionnés.
    Par Flint dans le forum SQL*Loader
    Réponses: 0
    Dernier message: 31/05/2010, 14h40
  3. index partitionné KO
    Par ghostlord79 dans le forum DB2
    Réponses: 9
    Dernier message: 22/07/2009, 22h05
  4. index partitionne unusable
    Par Z3phur dans le forum Administration
    Réponses: 1
    Dernier message: 05/06/2009, 11h17
  5. Index partitionné LOCAL/GLOBAL
    Par lalystar dans le forum Oracle
    Réponses: 3
    Dernier message: 11/02/2005, 15h15

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