Partionnement horizontal sous Oracle 9i

Range partioning

Les partitions sont créées sur des sous-domaines continus et ordonnés de valeurs de la colonne.

CREATE TABLE nom_table (...) 
 PARTITION BY RANGE (nom_attribut)
  (
  PARTITION nom_partition_1 VALUES LESS THAN (valeur),
  PARTITION ...
  PARTITION nom_partition_N VALUES LESS THAN (MAXVALUE)
  );

List-partioning

Les partitions sont créées sur une liste de valeurs définies a priori. Cela permet de traiter le cas de sous-domaines discrets et non ordonnés.

CREATE TABLE nom_table (...) 
 PARTITION BY LIST (nom_attribut)
  (
  PARTITION nom_partition_1 VALUES (valeur1, valueur2, etc.),
  PARTITION ...
  PARTITION nom_partition_N VALUES (DEFAULT)
  );

Hash partioning

Les partitions sont créées sur une fonction de hachage. Cette solution est employée quand il est impossible de trouver une solution de partitionnement qui assure une répartition équilibrée dans les partitions.

CREATE TABLE nom_table (...) 
 PARTITION BY HASH (nom_attribut) PARTITIONS N;

Optimiseur de requêtes

L'optimiseur de requête d'Oracle saura déterminer si dans un cas donné il peut n'exécuter une requête que sur un sous ensemble des partitions de la table. Il exclura alors les partitions inintéressantes et ainsi assurera une exécution plus rapide de la requête. Les hash-partitions ne pourront être exploitées dans ce cadre sauf dans le cas de la recherche d'une unique valeur.

Partionnement d'index

Les index peuvent également être partitionnés, en correspondance ou non avec la partition de la table qu'ils indexent (et donc même si la table indexée n'est pas partitionnée).

AccueilOptimisation de requêtes sous Oracle 9i > Partionnement horizontal sous Oracle 9i< PrécédentSuivant >