Partitionnement (Oracle)
From Wikipedia, the free encyclopedia
Le partitionnement de la base de données Oracle est un module de division des données d'Oracle, payant et fréquemment utilisé sur des tables de volumétrie importante pour en augmenter les performances[1].
Le partitionnement permet de découper une table ou un index sur des critères logiques. La table se comporte alors comme plusieurs tables de dimensions plus petites. Les avantages principaux du partitionnement sont :
- de pouvoir définir des critères de stockage différents pour chacune des partitions (tablespace, initial...)
- le découpage logique de la table permet un accès plus rapide aux informations (moins de lectures disques à effectuer en particulier)
Types de partitionnements
Il existe trois grands types de partitionnements :
- by range : on définit les partitions par tranche supérieure exclusive (toutes les données < 0)
- by list : on définit une valeur par partition (utilisé lorsque la liste de valeurs pour le champ considéré est faible)
- by hash : la partition de stockage est calculée dynamiquement par un calcul de type hash code, ce mode impose un nombre de partitions 2^n
- composite : c'est une méthode de partitionnement hybride. Les données sont d'abord partitionnées by range. Ensuite, chaque partition sera sous-partitionnée soit by hash ou by list. Il n'est pas nécessaire d'avoir exactement le même nombre de sous-partitions par partition : par exemple, une partition peut être constituée de 4 sous-partitions alors qu'une autre sera composée de 5 sous-partitions.
Le mécanisme de découpage logique peut être étendu sur plusieurs champs, ainsi que sur deux niveaux. On parle dans ce cas de sous-partitionnement.
RANGE / HASH (8i)
RANGE / LIST (9i)
RANGE / RANGE (11g)
LIST / RANGE (11g)
LIST / HASH (11g)
