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 :

Table basée sur un index (IOT) : pourquoi un index secondaire? [11gR2]


Sujet :

Administration Oracle

  1. #1
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 992
    Points : 2 498
    Points
    2 498
    Par défaut Table basée sur un index (IOT) : pourquoi un index secondaire?
    Bonjour,

    J'ai lu qu'il existait des tables basées sur des index et que ces tables ont leurs données uniquement dans l'index et aucune sous forme de table classique.
    Cependant il est fait référence parfois à un index secondaire sur ces tables dites IOT (Index Organized Table) et cet index secondaire entraînerait généralement des pertes sévères de performances.

    Ma question est : pourquoi alors créer un index secondaire si cela fait chuter les performances d'accès aux données?
    Est-il un cas où cet index secondaire est utile et améliore ces performances?

    Par avance merci pour vos conseils.
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 814
    Points
    17 814
    Par défaut
    L'index secondaire aura un impact légèrement négatif pour les insertions, mises à jour et suppressions, mais en général très positif pour les requêtes, c'est pour ça qu'il est créé.

    Il faut toutefois créer ces index avec parcimonie, car les impacts négatifs s'additionnent les uns aux autres.

    Cette remarque est également vraie pour les tables heap (les tables classiques).

  3. #3
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 992
    Points : 2 498
    Points
    2 498
    Par défaut
    Salut Waldar,

    Merci pour ta réponse mais tu sembles dire qu'au final un index secondaire est positif alors que dans le livre "Optimisation des bases de données" de Laurent Navarro il est dit le contraire, à savoir que la création d'un index secondaire entraîne une forte chute de performances, même avec les Select, et qu'il n'y a aucun intérêt à un créer un.
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  4. #4
    Expert éminent
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 821
    Points : 6 443
    Points
    6 443
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Pourquoi un index secondaire? Pour les requêtes qui ne vont pas chercher les données par clé primaire.
    Il ne fait pas chuter les performances. C'est juste que l'accès via cet index est un peu moins efficace que l'accès par index sur une table non IOT.
    Il faut comprendre comment ça marche.
    - dans une table normale, tous les index référencent la ligne de la table via rowid, donc accès direct
    - dans une IOT l'accès par clé primaire n'a pas besoin de cet accès à la table -> plus efficace
    - mais dans une IOT l'accès par index secondaire référence la clé primaire, donc deux structure d'index à parcourir

    La meilleur explication: http://use-the-index-luke.com/fr/sql...comme-un-index

    Cordialement,
    Franck.
    Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
    🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot

  5. #5
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 992
    Points : 2 498
    Points
    2 498
    Par défaut
    Merci pour ta réponse Pachot.
    J'avais lu l'article que tu mentionnes mais il m'avait un peu laissé sur ma faim; je vais alors mieux le relire
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

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

Discussions similaires

  1. [AC-2007] Requête création de table basée sur une requête union
    Par etoileweb dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 26/08/2011, 21h09
  2. Affichage d'une table basée sur un Managed Bean
    Par nejib salem dans le forum JDeveloper
    Réponses: 1
    Dernier message: 04/01/2010, 12h31
  3. table basée sur req - une colonne = calc de deux autres
    Par chapeau_melon dans le forum WinDev
    Réponses: 0
    Dernier message: 04/04/2008, 11h59
  4. Réponses: 2
    Dernier message: 01/04/2008, 17h30
  5. Réponses: 2
    Dernier message: 29/03/2007, 12h47

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