Réorganisation de tables partitionnées

LinkedIn 0
Twitter
Facebook 0
Google+ 0

Je partage via ce post un script PL/SQL permettant la réorganisation de tables sous Oracle 10g & 11g, via la méthode ALTER TABLE MOVE.
Il est très utile sur des bases de données utilisant le partitionnement car il supporte la réorganisation de table partitionnées.

Les indexes de la table sont également reconstruits, faute de quoi l’ordre ALTER TABLE MOVE les laisse dans un état UNUSABLE.
Si les indexes sont partitionnés, le script supporte également le rebuild de ces derniers, partition par partition.

Noter que la méthode ALTER TABLE MOVE est à faire en dehors des plages d’ouvertures applicatives car elle rend les indexes unusable le temps de leur rebuild.

Le script se trouve en fin d’article.
Voyons un cas de test avec une table visant à stocker les collaborateurs d’une société avec une partition par site géographique.

Cette table stocke les entrées dans la partition correspondante à chaque ville sur la base du champ emp_site.
Si une requête sur la table utilise une clause « WHERE emp_site = « , alors seule la partition correspondant à cette ville sera lue.
Créons un index partitionné LOCAL sur cette table afin d’avoir à la fois une table partitionnée et un index partitionné.

Insérons une dizaine de lignes dans la table :

Vérifions la présence des objets partitionnés :

Voici l’appel du script pour la réorganisation de cette table.
Il prend en paramètre le schéma et le nom de la table visée :

Voici les sources du script :

 

LinkedIn 0
Twitter
Facebook 0
Google+ 0

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *