REINDEX DATABASE

Utilice el comando REINDEX DATABASE para limpiar y reindexar una base de datos de usuario. Hay que conectarse a la base de datos del sistema como usuario administrativo para ejecutar este comando.

Al crear, utilizar y eliminar objetos SQL en una base de datos de usuario, el software de base de datos crea entradas en el catálogo del sistema para dichos objetos. Las tablas del catálogo del sistema contienen índices para acelerar el acceso al catálogo. Si los usuarios de la base de datos crean, utilizan y suprimen objetos con frecuencia, lo que a menudo sucede al usar aplicaciones de informes SQL de terceros, las entradas de índice de los objetos suprimidos pueden crecer mucho y repercutir en el rendimiento de las consultas.

El comando REINDEX DATABASE puede utilizarse para eliminar (o limpiar) entradas de objetos suprimidos en las tablas del catálogo y luego recrear los índices de dichas tablas en la base de datos de usuario. Es necesario tener permiso para conectarse a la base de datos del sistema como usuario administrativo para ejecutar este comando. La base de datos de usuario no puede tener ninguna sesión o conexión activa. El sistema NPS puede permanecer en línea mientras se ejecuta el comando REINDEX DATABASE. El proceso de reindexar generalmente es muy rápido. Normalmente, el comando solo necesita unos segundos para actualizar una base de datos de usuario pequeña, mientras que en el caso de bases de datos de gran tamaño, se necesitan unos pocos minutos.

Sintaxis

Sintaxis para el comando REINDEX DATABASE:
REINDEX DATABASE <name>

Entrada

El comando REINDEX DATABASE toma la siguiente entrada:
Tabla 1. Entrada de REINDEX DATABASE
Entrada Descripción
<name> Nombre de la base de datos de usuario que se desea reindexar.

Resultados

El comando REINDEX DATABASE tiene las siguientes salidas:
Tabla 2. Salidas de REINDEX DATABASE
Resultado Descripción
REINDEX DATABASE El comando se ha ejecutado correctamente.
ERROR: command must be run from the system database Hay que conectarse a la base de datos del sistema como usuario administrativo para ejecutar este comando.
ERROR: unable to acquire lock on database name La base de datos tiene conexiones activas. Es necesario detener las sesiones en la base de datos para poder reindexar la base de datos. La base de datos del sistema no se puede reindexar.
ERROR: REINDEX DATABASE cannot run inside a BEGIN/END block or stored procedure No se puede utilizar el comando REINDEX DATABASE en el cuerpo de un procedimiento almacenado o dentro de un bloque de transacción.
ERROR: REINDEX DATABASE: permission denied Hay que conectarse a la base de datos del sistema como usuario administrativo para ejecutar este comando.

Uso

A continuación se proporciona el uso de muestra:
  • Reindexar la base de datos emp:
    SYSTEM.ADMIN(ADMIN)=> REINDEX DATABASE emp;
    REINDEX DATABASE