REINDICIZZARE IL DATABASE
Usare il comando REINDEX DATABASE per aspirare e reindicizzare un database utente. Per eseguire questo comando è necessario connettersi al database SYSTEM come utente admin.
Quando si creano, utilizzano ed eliminano oggetti SQL in un database utente, il software del database crea voci nel catalogo di sistema per tali oggetti. Le tabelle del catalogo di sistema contengono indici per accelerare l'accesso al catalogo. Se gli utenti del database creano, utilizzano ed eliminano frequentemente gli oggetti, come spesso accade utilizzando applicazioni di reporting SQL di terze parti, le voci dell'indice per gli oggetti eliminati possono diventare molto grandi e influire sulle prestazioni delle query.
È possibile utilizzare il comando REINDEX DATABASE per rimuovere (o svuotare) le voci degli oggetti eliminati nelle tabelle del catalogo e quindi ricreare gli indici delle tabelle del catalogo nel database utente. Per eseguire il comando è necessario avere l'autorizzazione a connettersi al database SYSTEM come utente admin. Il database degli utenti non può avere sessioni o connessioni attive. Il sistema NPS può rimanere in linea durante l'esecuzione del comando REINDEX DATABASE. Il processo di reindicizzazione è solitamente molto veloce. Il comando richiede in genere alcuni secondi per aggiornare un piccolo database di utenti, mentre per database molto grandi potrebbero essere necessari alcuni minuti.
Sintassi
REINDEX DATABASE <name>Immissione
| Immissione | Descrizione |
|---|---|
| <name> | Il nome del database utente da reindicizzare. |
Output
| Emissione | Descrizione |
|---|---|
| REINDEX DATABASE | Il comando è stato eseguito correttamente. |
| ERROR: command must be run from the system database | Per eseguire il comando è necessario connettersi al database SYSTEM come utente admin. |
| ERROR: unable to acquire lock on database name | Il database ha connessioni attive. È necessario interrompere le sessioni del database prima di poterlo reindicizzare. Non è possibile reindicizzare il database SYSTEM. |
| ERROR: REINDEX DATABASE cannot run inside a BEGIN/END block or stored procedure | Non è possibile utilizzare il comando REINDEX DATABASE all'interno del corpo di una stored procedure o all'interno di un blocco di transazioni. |
| ERROR: REINDEX DATABASE: permission denied | Per eseguire il comando è necessario connettersi come utente admin al database SYSTEM. |
Utilizzo
- Reindicizzare il database '
emp:SYSTEM.ADMIN(ADMIN)=> REINDEX DATABASE emp; REINDEX DATABASE