Parametrizzazione > Utilizzo > Dati > Ottimizzazione base dati 

I software in tecnologia Adonix prevedono nel dizionario delle tabelle standard degli indici concepiti per gestire i vincoli di integrità (con chiavi univoche) e per dare ottimi tempi di risposta nella maggior parte dei casi (indici standard utilizzati per le liste di selezione, per importanti job batch, per le interrogazioni standard). Questi indici possono contenere da 1 a 16 campi. Negli indici di questo tipo, non è possibile utilizzare un campo indicizzato con un indice superiore ad 1. Così ad esempio è impossibile creare nel dizionario un indice sulla seconda riga di un indirizzo.

In alcuni casi particolari, può essere interessante creare degli indici utilizzando la parametrizzazione per realizzare un'ottimizzazione particolare (per esempio per una stampa, o per ottimizzare un'interrogazione complessa). L'esempio tipico può essere l'aggiunta di un indice in una tabella voluminosa per accelerare la costituzione dei dati di un'interrogazione creata dalla consultazione, o ancora l'utilizzo di un indice dedicato nella parametrizzazione degli oggetti, per utilizzare un ordine particolare in una lista di selezione.

Questa funzione permette di creare mediante parametrizzazione degli indici con le seguenti proprietà:

  • Non devono essere utilizzati in un un programma in modo esplicito, ma servono ad accelerare delle query quando l'indice utilizzato di norma non è discriminante
  • Possono essere utilizzati nella parametrizzazione delle liste di selezione, per rispondere ad esempio all'accelerazione di query quando vengono eseguiti frequentemente dei filtri su alcuni campi. Per esempio, questi filtri possono essere dei filtri dedotti dalla gestione dei ruoli o dei filtri utilizzati dalla funzione Selezione.
  • Possono vertere su dei campi indicizzati (mentre gli indici standard descritti nel dizionario delle tabelle non possono). Un esempio di utilizzo può essere l'aggiunta di un indice su alcuni incroci analitici (le sezioni sono dei campi indicizzati, cosa che vieta un indice standard; inoltre, tenuto conto del numero di incroci esistenti, sarà impossibile prevedere quelli che saranno più utili).
  • Possono autorizzare degli omonimi
  • Possono essere attivati o disattivati a piacere

Essendo una funzione della parametrizzazione, gli indici definiti sono continuativi: ogni indice già parametrizzato non sarà aggiornato da nuove versioni del software. Viceversa, una nuova versione del software è in grado di aggiungere nuovi indici nell'elenco (ma tali indici saranno sistematicamente proposti disattivati).

E' importante comprendere che questi indici servono soltanto ad ottimizzare dei programmi standard, delle liste di selezione o delle interrogazioni parametrizzabili. Se nel quadro di uno sviluppo specifico è necessario un indice, va considerato che questo indice deve essere definito nel dizionario dati e reso protetto da un codice attività.

Prerequisiti

SEEREFERTTO Riferirsi alla documentazione di Implementazione

Gestione videata

Videata di inserimento

Presentazione

L'inserimento degli indici supplementari si effettua in un riquadro in cui si definirà, tabella per tabella, ogni indice da creare.

Chiudi

 

Campi

I seguenti campi sono presenti in questo folder :

Riquadro

Definisce la tabella relativa all'indice da creare.

  • Codice indice (campo CODIND)

Definisce il codice sotto il quale tale indice verrà riconosciuto. Il nome deve obbligatoriamente iniziare con i caratteri SPE_ e non deve esistere altrove (anche per un'altra tabella).

  • Descrizione indice (campo DESCRIPT)

Definisce l'indice nel formato di un elenco di campi eventualmente indicizzati (l'indice è tra parentesi, la prima occorrenza equivale all'indice 0 e può essere omessa) e separati da dei '+'.

Ad esempio:

  • sulla tabella utente, sarà definito un indice dal codice del secondo responsabile gerarchico con: CHEF(1)
  • sulla tabella delle stampe, un indice per modulo, poi per gruppo, poi per codice stampa, sarebbe definito con: MODULE+GRP+RPTCOD
  • Attivo (campo FLACT)

Permette di sapere se l'indice definito è attivo (o deve diventarlo). Infatti solo il bottone (o una rivalidazione della tabella o del dossier) permetterà di creare effettivamente l'indice (o di cancellarlo se l'indice è stato messo in stato inattivo).

  • Commento (campo COMDES)

 

Chiudi

 

Bottoni specifici

Permette di lanciare l'aggiornamento delle tabelle creando gli indici che sono stati aggiunti o attivati, eventualmente anche eliminando gli indici che sono stati annullati o disattivati.

Attenzione, questa fase può essere lunga e costosa in tempo macchina nella misura in cui ci sia necessità di lettura e costituzione dell'indice su una tabella voluminosa. Può anche aver bisogno di spazio su disco e porre dei problemi se non c'è abbastanza margine di spazio nel database. In questo caso, appariranno dei messaggi di errore espliciti dal database.

I seguenti campi sono presenti sulla finestra aperta da questo bottone :

Blocco numero 1

  • campo OBJET

 

  • campo CLES

 

Blocco numero 2

  • Dal dossier (campo DOSORG)

Questo campo permette di definire il dossier a partire dal quale sarà copiata la scheda. Le sintassi possibili sono descritte nell'allegato dedicato.

  • Tutti i dossiers (campo TOUDOS)

Questa opzione permette di copiare la scheda verso tutti i dossier definiti nel dizionario (tabella ADOSSIER della soluzione corrente).

  • Al dossier (campo DOSDES)

Questo campo permette di definire il dossier nel quale sarà copiata la scheda. Le sintassi possibili sono descritte nell'allegato dedicato.

Chiudi

permette di trasferire il contenuto della tabella completa verso un altro dossier.

Messaggi di errore

Oltre ai messaggi generici, i seguenti messaggi d'errore possono apparire al momento dell'inserimento :

Indice XXX+YYY+ZZZ+...  YYY campo inesistente

Il campo il cui nome è indicato non esiste nell'indice appena definito.

Componenti di chiave già inseriti per l'indice XXX

Questo indice è già un indice standard della tabella.

Il codice deve iniziare con SPE_

Il nome proposto per l'indice non è conforme.

Codice già esistente sulla riga i

E' già stato creato un indice con lo stesso nome.

Tabelle utilizzate

SEEREFERTTO Riferirsi alla documentazione di Implementazione