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 :

Question : Index partitionné


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
    Septembre 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2011
    Messages : 60
    Par défaut Question : Index partitionné
    Bonjour,

    Je souhaiterai savoir si je crée une table partitionnée sous Oracle 11g avec un index sur une colonne. Mon index sera t-il partitionné ? (je pense que non)

    Est-il utile de partitionner un index dont la table est partitionnée ?

    Merci d'avance pour vos réponses

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    C'est à vous de le définir quand vous créez l'index :
    http://docs.oracle.com/cd/E11882_01/...2.htm#i2125897

    Les index liés aux contraintes d'unicité et de clef primaires sont forcément globaux, mais pour les autres c'est à vous de voir.

    Quant à savoir si c'est intéressant, ça dépend de vos requêtes.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2011
    Messages : 60
    Par défaut
    J'ai aussi regardé cette page :
    http://docs.oracle.com/cd/E11882_01/...s.htm#CHDDDFEG

    Mais ca ne me paraissait pas claire.

    Je fais beaucoup de requête sur des période de temps. J'ai donc partitionné ma table sur des périodes de temps en mettant un index dessus. J'ai également certaines colonnes utilent où j'ai ajouté un index compressé.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2011
    Messages : 60
    Par défaut
    J'ai lu que l'index partitionné ne crée pas automatiquement de partitions à interval régulier (comme on peut le faire pour les tables sous 11g)

    Auriez-vous une solution pour contourner ce problème ?

  5. #5
    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
    Citation Envoyé par Waldar Voir le message
    Les index liés aux contraintes d'unicité et de clef primaires sont forcément globaux,
    Ca n'est pas correct.


    Vous pouvez toujours assurer l'unicité d'une table partitionée via un index local à condition d'y inclure la clé de partitionnement

    https://cn.forums.oracle.com/forums/...rt=15&tstart=0

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Citation Envoyé par Mohamed.Houri Voir le message
    Vous pouvez toujours assurer l'unicité d'une table partitionée via un index local à condition d'y inclure la clé de partitionnement

    https://cn.forums.oracle.com/forums/...rt=15&tstart=0
    Dans votre exemple pour réussir à créer un index unique local vous faussez la contrainte d'unicité, elle n'a donc plus de sens.

  7. #7
    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
    Citation Envoyé par Waldar Voir le message
    Dans votre exemple pour réussir à créer un index unique local vous faussez la contrainte d'unicité, elle n'a donc plus de sens.
    Si ma clé fonctionnelle unique contient la clé de paritionnement, je peux donc utiliser un index local pour couvrir cette unicité. Ce qui contredit "Les index liés aux contraintes d'unicité et de clef primaires sont forcément globaux"

    En d'autres termes, j'ai déjà eu à travailler avec plusieurs tables ayant des contraintes d'unicité validées par un index local.

  8. #8
    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
    Citation Envoyé par alex_972 Voir le message
    Bonjour,

    Est-il utile de partitionner un index dont la table est partitionnée ?
    Et comme toujours en Oracle, la réponse est "ça dépend".

    Le partitionnement peut avoir comme but, entres autres, l'amélioration de la performance des selects. Pour cela, il est primordial de pouvoir aboutir à ce qu'on appelle du "partition pruning" ou "partition elimination". Pour ce faire, vous n'avez pas besoin d'un index. Il suffit que vos requêtes fassent appel dans leur where clause à la clé de partitionnement. D'où l'immense importance du choix de la clé de partitionnement. Mais si en plus, de l'élimination de partitions, vous souhaitez accéder à vos données via un index local, qui à son tour n’accèdera qu’aux partitions non éliminées, alors vous auriez éliminé l’accès à des partitions de la table mais aussi à celles de l’index local correspondant.

    Par contre, je veux vous poser une question. Vous êtes amené à créer un index ind_loc(col1, trade_date) contenant la clé de partitionnement (trade_date) et une autre colonne (col1 par exemple). A votre avis, est-ce que cet index pour la requête suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Select *
    From table_part
    Where col1 = : 1 ;
    sera plus utile en étant global ou local?

Discussions similaires

  1. SQL Loader et index partitionnés.
    Par Flint dans le forum SQL*Loader
    Réponses: 0
    Dernier message: 31/05/2010, 14h40
  2. index partitionné KO
    Par ghostlord79 dans le forum DB2
    Réponses: 9
    Dernier message: 22/07/2009, 22h05
  3. index partitionne unusable
    Par Z3phur dans le forum Administration
    Réponses: 1
    Dernier message: 05/06/2009, 11h17
  4. index partitionné, seul ou accompagné ?
    Par olivanto dans le forum Administration
    Réponses: 7
    Dernier message: 27/02/2008, 14h13
  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