Partager l'article ! Partionnement - Administration - Type de partitionnement: Bonsoir, Me revoila avec mes histoires de partitionnement. Juste un petit post pour rev ...
Partition by range.
Le partitionnement "by range" convient parfaitement pour historiser les données. Cela permet d'organiser les données selon un intervalle dans le temps (jours, mois, trimestre ,année).
Il est fréquent que les grosses tables soient intérrogées par periode. Dans ce cas la Oracle utilisera le critère de partitionnement pour n'accèder qu'à une petite partie des données.
Partition by list.
Le partitionnement par liste s'effectue surtout sur des colonnes à faible cardinalité. C'est à dire dont le nombre de valeur distinctes est peu elevé. Attention, contrairement au "partition by
range" et"partition by hash", la clé de partitionnement ne peut concerner qu'une seule colonne.
Partition by hash.
Le partitionnement par hash permet de distribuer les données selon un algorithme qu'Oracle applique en fonction de la colonne partionné. L'idée est qu'Oracle répartie les données de façon égale
en les différentes partitions. Pour que le répartion soit homogène il faut bien évidemment choisir une clé de hash qui elle même soit répartie de facon homogéne dans la table.
Par exemple, si j'ai une table de facture et que je partitionne par hash sur l'information client en décidant de créer 64 partitions alors que je n'ai que deux clients distincts avec 90 % de
facture pour un client et 10 pour l'autre le choix de partitionnement par hash est à revoir. Il aurait mieux fallu choisir un partitionnement par liste.
En revanche, si j'ai un millier de clients avec environ le même nombre de factures par client, on aurra une répartition homogène. Pour le partitionnement par hash, Oracle recommande fortement que
le nombre de partition soit une puissance de 2 !
Remarque : Avec cet article, ca fait deux fois
que j'indique qu'ORACLE recommande que pour une partition par hash, le nombre de partitions soit une puissance de deux.
Alors je peux me poser la question de lapertinence de cette recommandation. Elle a le mérite de venir d'Oracle. Mais bon nombres de concepts sont appliqués dans des applications dites sensibles
sans que leur origine ou bienfondé soit vérifié.
Alors il n'est certe pas possible de toujours tout vérifier, mais dans de nombreux cas, cela ne prends que quelques minutes. Alors que dans quelques mois (après de grandes aventures...), il sera
beaucoup plus compliqué de faire marche arrière, même si on est convaincu que ce qui est en place est "bancal".
Revenons à nos moutons.
Crééons deux tables partitionnées par hash une avec 4 ( 2^2) partitions et une autre avec 5 partitions.
| Février 2012 | ||||||||||
| L | M | M | J | V | S | D | ||||
| 1 | 2 | 3 | 4 | 5 | ||||||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 | ||||
| 13 | 14 | 15 | 16 | 17 | 18 | 19 | ||||
| 20 | 21 | 22 | 23 | 24 | 25 | 26 | ||||
| 27 | 28 | 29 | ||||||||
|
||||||||||
L'ensemble ? la conclusion ? ou moi !