RÉINDEXER LA BASE DE DONNÉES

Utilisez la commande REINDEX DATABASE pour vider et réindexer une base de données utilisateur. Vous devez vous connecter à la base de données SYSTEM en tant qu'utilisateur admin pour exécuter cette commande.

Lorsque vous créez, utilisez et supprimez des objets SQL dans une base de données utilisateur, le logiciel de la base de données crée des entrées dans le catalogue système pour ces objets. Les tables du catalogue système contiennent des index pour accélérer l'accès au catalogue. Si les utilisateurs de la base de données créent, utilisent et suppriment fréquemment des objets, ce qui est souvent le cas lorsqu'ils utilisent des applications de reporting SQL tierces, les entrées d'index pour les objets supprimés peuvent devenir très volumineuses et avoir un impact sur les performances des requêtes.

Vous pouvez utiliser la commande REINDEX DATABASE pour supprimer (ou vider) les entrées des objets supprimés dans les tables de catalogue, puis recréer les index des tables de catalogue dans la base de données utilisateur. Vous devez avoir l'autorisation de vous connecter à la base de données SYSTEM en tant qu'utilisateur admin pour exécuter la commande. La base de données des utilisateurs ne peut pas avoir de sessions ou de connexions actives. Le système NPS peut rester en ligne pendant l'exécution de la commande REINDEX DATABASE. Le processus de réindexation est généralement très rapide. La commande prend généralement quelques secondes pour mettre à jour une petite base de données d'utilisateurs, et les très grandes bases de données peuvent nécessiter quelques minutes.

Syntaxe

Syntaxe de la commande REINDEX DATABASE :
REINDEX DATABASE <name>

Entrée

La commande REINDEX DATABASE prend en compte les données suivantes :
Tableau 1. REINDEX DATABASE input
Entrée Descriptif
<name> Le nom de la base de données des utilisateurs que vous souhaitez réindexer.

Sorties

La commande REINDEX DATABASE produit les résultats suivants :
Tableau 2. REINDEX DATABASE outputs
Sortie Descriptif
REINDEX DATABASE La commande a abouti.
ERROR: command must be run from the system database Vous devez vous connecter à la base de données SYSTEM en tant qu'utilisateur admin pour exécuter la commande.
ERROR: unable to acquire lock on database name La base de données a des connexions actives. Vous devez arrêter les sessions de la base de données avant de pouvoir réindexer la base de données. Vous ne pouvez pas réindexer la base de données SYSTEM.
ERROR: REINDEX DATABASE cannot run inside a BEGIN/END block or stored procedure Vous ne pouvez pas utiliser la commande REINDEX DATABASE dans le corps d'une procédure stockée ou dans un bloc de transaction.
ERROR: REINDEX DATABASE: permission denied Vous devez vous connecter en tant qu'utilisateur admin à la base de données SYSTEM pour exécuter la commande.

Utilisation

Voici un exemple d'utilisation :
  • Réindexer la base de données 'emp:
    SYSTEM.ADMIN(ADMIN)=> REINDEX DATABASE emp;
    REINDEX DATABASE