[Oracle] : Reconstruire les index d’un user/schéma

Print Friendly, PDF & Email

Cela pourrait être classé dans la rubrique tips tellement c’est simple et court. Je vous propose de réaliser une reconstruction des index d’un schéma d’une instance oracle. Rien de bien compliqué mais plutôt que de rechercher toujours comment faire, voici la soluce une fois de plus présente sur le web lol.

Dans un premier temps, comment lister les index d’un schéma ?

SELECT index_name FROM all_indexes WHERE OWNER='TOTO_OWNER';

Le mieux est bien sûr de créer un script sql qui listera tous les index et rédigera le SQL en même temps. Donc le voici :

spool rebuild_all.sql;
SELECT 'ALTER INDEX ' || index_name || ' REBUILD;' FROM all_indexes WHERE OWNER='TOTO_OWNER';
spool off;
@rebuild_all.sql

Et voilà donc, on vient de générer un ficher rebuild_all.sql dans lequel on créera une ligne par index et on ordonne un rebuild au moteur. Et on peut lancer tout cela avec un petit sqlplus ‘/as sysdba’.

black and red laptop computer beside white puma curve brim cap

Photo by Danny Meneses on Pexels.com

Promis la prochaine fois on va taper plus haut. Je pense que dans un prochain article nous verrons comment suivre le switch des redo log. Notamment pour analyser combien de switch sont réalisées chaque heure de la journée. Un bon moyen de suivre les périodes où les écritures sont les plus importantes sur votre instance oracle.

Tiens et au passage faut que je pense à vous parler de comment intégrer ce genre de script sql dans un outil comme rundeck (en terme de rédaction… échappement de quote…).

Découvrez  [Oracle] : comment lister les tables lockées et les dévérouiller ?