L’instruction SQL ALTER INDEX est utilisée pour modifier la définition d’un index.
Voici la syntaxe de modification d’index :
ALTER INDEX nom-index
[REGENERATE]
[ADD COLUMN (nom-colonne ASC/DESC)]
[CLUSTER | NOT CLUSTER]
[PADDED | NOT PADDED]
[using-specification]
[free-specification]
[COMPRESS YES | NO]
[ALTER partition-element
using-specification
free-specification]
[BUFFERPOOL nom-bp]
[CLOSE YES | NO]
[PIECESIZE integer]
[COPY YES | NO]
Explication:
- REGENERATE : Spécifie que l’index sera régénéré.
- ADD COLUMN : ajoute nom-colonne à l’index.
- ALTER PARTITION : identifie la partition de l’index à modifier.
Exemple 1:
Modifiez l’index DSN8910.IX_EMP. Indiquez que DB2 ne doit pas fermer les ensembles de données qui prennent en charge l’index lorsqu’il n’y a aucun utilisateur actuel de l’index.
ALTER INDEX DSN8910.IX_EMP
CLOSE NO;
Modifier l’index partitionné DSN8910.IX_DEPT. Pour la partition 3, laissez une page d’espace libre pour 13 pages et 13 % d’espace libre par page. Pour la partition 5, laissez une page pour 25 pages et 25 % d’espace libre. Pour toutes les autres partitions, laissez une page d’espace libre pour 6 pages et 11 % d’espace libre.
ALTER INDEX DSN8910.IX_DEPT
USING
VCAT CATLGG
FREEPAGE 6
PCTFREE 11
ALTER PARTITION 3
USING VCAT CATLGG
FREEPAGE 13
PCTFREE 13,
ALTER PARTITION 5
USING VCAT CATLGG
FREEPAGE 25
PCTFREE 25;
Exemple 2 :
Modifiez l’index DSN8910.IX_PROJ. Utilisez BP1 comme pool de mémoire tampon à associer à l’index, indiquez que l’image complète ou les copies simultanées sur l’index sont autorisées et modifiez la taille maximale de chaque ensemble de données à 8 mégaoctets.
ALTER INDEX DSN8910.IX_PROJ
BUFFERPOOL BP1
COPY YES
PIECESIZE 8M;
Exemple 3 :
Supposons que l’index IX_X1 contient au moins une colonne de longueur variable et est un index rembourré. Remplacez l’index par un index qui n’est pas rempli.
ALTER INDEX IX_X1 NOT PADDED;