Contexte: base de données Oracle 10.L'utilisation de partitions serait-elle une bonne idée dans une telle situation?
Dans une table assez grande (plusieurs millions d'enregistrements), nous avons récemment commencé à voir des problèmes de performance. La table a des comportements/conditions spéciales.
- son écriture la plupart du temps une fois, puis n'est jamais changé à nouveau
- au cours du premier jour ou les dossiers sont classés de 0..N (permet d'appeler cette classe de colonne). les enregistrements peuvent être reclassés plusieurs fois pendant ce premier jour
- nouvelles entrées sont ajoutées avec la classe 0 signifiant "pas encore classé"
- chaque heure ou alors un processus classifie les nouveaux reocrds et leur donne une nouvelle classe de 1..N
- tous les lecteurs ne sont intéressés que dans la classe 1
- tous les dossiers plus d'un jour changer à peine leur classe,> 1 devient nettoyer un après quelques jours
maintenant, comme la plupart accès est fait en classe 1, cette colonne est souvent impliquée dans les requêtes (class = 1), avec d'autres ons. Nous avons un index sur la colonne de classe, et encore pour certaines autres colonnes.
À ma question: Nous pensons maintenant à partitionner cette table par classe. Autant que je l'ai compris, cela rendrait l'indexation/travail avec les données plus rapide, car la classe = 1 est déjà séparée du reste des données et donc l'accès à celle-ci est implicitement plus efficace. Est-ce correct?
Si vous êtes d'accord que c'est une bonne idée, je vais continuer à lire dans le sujet!
Merci Vive
Mise à jour 2010.11.30
Merci beaucoup pour l'entrée. Je n'étais pas au courant que c'est une option supplémentaire :) merci de le signaler (avant que j'y investisse trop de temps). Mais à côté du problème de licence, il me semble que la partition n'est pas forcément une bonne solution dans ce contexte.
Partitionnement - au moins pour Oracle - est une option coûteuse, et en aucun cas approprié dans toutes les situations. – APC