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
REINDEX DATABASE <name>Entrada
| Entrada | Descripción |
|---|---|
| <name> | Nombre de la base de datos de usuario que se desea reindexar. |
Resultados
| 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
- Reindexar la base de datos
emp:SYSTEM.ADMIN(ADMIN)=> REINDEX DATABASE emp; REINDEX DATABASE