Titolo: Ripristinare gli indici
Categoria: Codice |
|
Ultimo Aggiornamento: 06/06/05 |
Ecco un semplice metodo per ricostruire gli indici:
READ WRITE(*)
C_POINTER($table;$field)
C_LONGINT($i;$j;$type;$length)
C_BOOLEAN($indexed)
For ($i;1;Count tables)
$table:=Table($i)
For ($j;1;Count fields($table))
$field:=Field($i;$j)
GET FIELD PROPERTIES($field;$type;$length;$indexed)
If ($indexed)
SET INDEX($field->;False)
SET INDEX($field->;True)
FLUSH BUFFERS
End if End for End for Alcune annotazioni:
- il metodo dovrebbe essere eseguito senza che altri utenti siano connessi e senza che se ne possano connettere prima del suo completamento;
- è possibile che la reindicizzazione necessiti di molto tempo;
- le subtable devono essere indicizzate a parte.
Se la reindicizzazione non andasse a buon fine, bisogna controllare quale campo comporta tale problema. Si potrebbe, ad esempio, prima della reindicizzazione di ogni campo, scrivere in un file su quali campi stiamo agendo, in modo da poter sapere quale dato ha portato al crash.
Inviato da: PierPaolo Sichera |
|
Visite: 12639 |
Se accedi con utente e password, puoi aggiungere dei commenti.