37 votes

Quand dois-je utiliser la table organisée par index d'Oracle? Ou, quand ne devrais-je pas?

Index Organisé des Tables (IOTs) sont des tables stockées dans une structure d'index. Alors qu'une table stockée dans un segment de mémoire est organisée de données dans un IOT sont stockés et triés par clé primaire (les données de l'index). IOTs se comportent comme des "réguliers" des tables, et que vous utilisez le même SQL pour y accéder.

Chaque table dans une bonne base de données relationnelle est censé avoir une clé primaire... Si chaque table dans ma base de données a une clé primaire, dois-je toujours utiliser un index organisé table?

Je devine la réponse est non, alors, quand est un index organisé table pas le meilleur choix?

23voto

APC Points 69630

Fondamentalement, un index organisé table est un indice sans table. Donc, si vous avez un tableau dont les colonnes sont constitués de la clé primaire et au plus une autre colonne, alors vous avez un candidat possible pour l'INDICE ORGANISÉ.

Mais si vous vous trouvez en contemplant le besoin pour plus d'indices sur la non-colonnes de clé primaire, alors vous êtes probablement mieux avec un tas de table. Donc, comme la plupart des tables probablement besoin de plus d'indices de la plupart des tables ne sont pas adaptés pour les IOTs.

Dans la pratique, l'indice a organisé des tables sont les plus susceptibles d'être des données de référence, des codes affaires. Tableaux d'Application sont presque toujours juste tas organisé.

15voto

Gary Myers Points 24819

Je les considérerais pour des tables très étroites (comme les tables de jointure utilisées pour résoudre les tables plusieurs-à-plusieurs). Si (virtuellement) toutes les colonnes de la table vont de toute façon être dans un index, alors pourquoi ne devriez-vous pas utiliser un IOT.

Les petites tables peuvent être de bons candidats pour les IOT comme discuté par Richard Foote ici

10voto

Jeffrey Kemp Points 26050

Je considère que les types de tableaux suivants sont d'excellents candidats pour les IOT:

  • "petites" tables de type "recherche" (par exemple, interrogées fréquemment, mises à jour rarement, tiennent dans un nombre relativement petit de blocs)
  • toute table pour laquelle vous allez déjà avoir un index qui couvre toutes les colonnes de toute façon (c'est-à-dire peut aussi bien économiser l'espace utilisé par la table si l'index duplique 100% des données)

9voto

Ian Carpenter Points 3568

À partir de l'Oracle des Concepts guide:

Index-organisé des tables sont utiles lorsque liées morceaux de données doivent être stockées ensemble ou les données doivent être physiquement stockées dans un ordre spécifique. Ce type de table est souvent utilisé pour les informations la récupération, spatiale (voir "vue d'ensemble de Oracle Spatial"), et OLAP les applications (voir "OLAP").

Cette question de AskTom peut également être d'un certain intérêt, surtout lorsque quelqu'un donne un scénario, puis demande serait une IOT effectuer de mieux qu'un tas organisé table, Tom réponse est:

nous pouvons émettre l'hypothèse tout au long de la journée, mais jusqu'à ce que vous mesurez, vous ne serez jamais sais pour sûr.

1voto

Adam Musch Points 8021

Une table organisée par index est généralement un bon choix si vous accédez uniquement aux données de cette table par la clé, la clé entière et rien que la clé.

En outre, il existe de nombreuses limitations concernant les autres fonctionnalités de base de données qui peuvent et ne peuvent pas être utilisées avec des tables organisées par index - je me souviens que dans au moins une version, on ne pouvait pas utiliser de bases de données de secours logiques avec des tables organisées par index. Une table organisée par index n'est pas un bon choix si elle vous empêche d'utiliser d'autres fonctionnalités.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X