Sviluppo > Strumenti > Verifiche > Analisi memo 

In gestione di oggetto, ogni utente può posizionare dal menù Selezione / Selezione, dei filtri destinati a selezionare nella lista di selezione solo una parte della tabella. Una selezione simile può essere memorizzata e riutilizzata regolarmente.

Questa interessante funzionalità è tuttavia fonte di potenziali problemi di prestazioni quando le tabelle filtrate in questo modo sono molto voluminose (per esempio, varie centinaia di migliaia di righe). E lo è ancora di più in quanto i memo possono diventare standard (cioé caricati nel momento in cui l'utente entra nella funzione), e globali (ovvero condivisi da un gruppo di utenti).

La funzione di analisi permette, a posteriori, di rilevare i potenziali problemi di prestazioni in considerazione dei memo posizionati dall'utente in un dossier. Attenzione, fornisce solo delle indicazioni, e in alcuni casi può rivelare dei problemi inesistenti. Per esempio, un memo per cui non viene trovato nessun indice discriminate da questa utility, può completare un filtro definito altrove nella logica del programma standard.

E' tuttavia prudente verificare, per ogni riga di traccia trovata, la pertinenza del messaggio di errore prendendo delle misure correttive. Queste misure possono essere di due tipi :

  • cancellazione del memo corrispondente o avviso all'utente
  • aggiunta di un indice di ottimizzazione se quest'ultimo sembra adattato

Per ottenere questo risultato, l'elaborazione legge tutti i file memo presenti sul dossier, abbina i criteri utilizzati dei vari indici esistenti sulla tabella (compresi gli indici di ottimizzazione) e realizza una diagnosi tenendo conto del numero di righe presenti nella tabella.

Si noti che due parametri, menzionati qui di seguito, permettono di controllare a priori i memo creati dagli utenti. Ma questi memo sono controllati solo alla loro creazione. Oppure dei memo giudicati efficienti all'origine potrebbero non esserlo più dopo qualche mese, se la dimensione del database li rende pesanti all'esecuzione. Questo è il motivo per cui è interessante lanciare questa utility anche se i due parametri qui in basso sono indicati correttamente.

Prerequisiti

SEEREFERTTO Riferirsi alla documentazione di Implementazione

Gestione videata

Videata di inserimento

Presentazione

Vengono definiti solo tre valori (in numero di righe) che caratterizzano le tabelle su cui sono testati i memo.

Quando l'esecuzione della funzione è terminata, si ottiene un file traccia in due parti. La prima parte è un elenco di problemi riscontrati, ordinati in ordine alfabetico dei file di memo e numerati. La traccia fornisce le informazioni sotto la seguente forma :

  • una prima riga di testata che specifica nel dettaglio il nome del memo (NOME), il fatto che sia locale o globale, l'utente interessato (UUUUU) e la tabella su cui è posizionato il memo (XXXXXX). I memo problematici sono numerati (campo NNN), il che dà la seguente riga (locale può essere sostituito da globale) :

NNN Memo locale UUUUU.NOME su tabella XXXXXX (descrizione tabella)

  • una o più righe che spiegano i problemi di prestazioni riscontrati su questo memo. I riquadri qui di seguito forniscono i messaggi che possono apparire:

MESSAGGIO

DEFINIZIONE

*** WARN (MMMM) *** DESCRIZIONE

Problema di prestazioni: la tabella contiene MMMM righe.

*** PERF (MMMM) *** DESCRIZIONE

Problema serio di prestazioni: la tabella contiene MMMM righe.

*** CRIT (MMMM) *** DESCRIZIONE

Problema critico di prestazioni: la tabella contiene MMMM righe.

 

CAMPO DESCRIZIONE

Spiegazione

Nessun indice adattato al filtro sul/i campo/i CAMPO1 CAMPO2 …: Problema di prestazioni

Tenuto conto dei filtri indicati, non esiste nessun indice appropriato. Se il memo è utile e viene utilizzato spesso, bisognerà ricorrere ad un indice di ottimizzazione.

La chiave di ordinamento della lista di selezione (CHIAVE1) è diversa dalla chiave di filtro (CHIAVE2)

Il database si serve di un primo indice (CHIAVE2) per filtrare i dati, poi li ordina secondo l'indice CHIAVE1 per presentare la lista di selezione. Questo può essere un problema di prestazioni se l'indice che serve al filtro è poco selettivo (poichè un gran numero di righe deve essere ordinato).

Operatore 'Diverso' su campo CAMPO1

Operatore 'Like' su campo CAMPO1

Questi due operatori non permettono al database di utilizzare in modo semplice gli indici su degli intervalli di valore; le prestazioni possono quindi essere pessime.

Operatore 'o' tra due condizioni

La selezione implica una o più condizioni separate da delle o. Questo tipo di richiesta è in generale abbastanza impegnativa.

Selezione su espressione: espressione

Questo tipo di selezione non è analizzato e quindi deve essere verificato per sapere se esiste un potenziale problema di prestazioni.

Quando nel memo ci sono più tabelle, verificare la richiesta

Si fanno delle selezioni su delle join. Questo tipo di richiesta non può essere verificato automaticamente tramite l'utility: si impone una verifica manuale per sapere se può esistere un problema di prestazioni.

La seconda parte della traccia fornisce un elenco strutturato dei problemi precedenti (una riga per problema). Prima si ritrova il numero di problema precedente, il nome del memo sotto forma UUUUUU.NOME/TABELLA, il numero di righe della tabella e un riassunto succinto dei criteri di filtro. L'ordinamento è il seguente:

  • prima sono classificati i memo standard , poi i memo non standard.
  • prima sono classificati i memo globali, poi i memo locali
  • a parità di questi due primi criteri, si ordina secondo il numero decrescente di righe nella tabella.

Questo permette di focalizzarsi prima sui memo che possono provocare più problemi di prestazioni.

Chiudi

 

Campi

I seguenti campi sono presenti in questo folder :

Opzioni di test

  • Dimensione critica (campo NBLIGBIG)

Questa grandezza (in numero di righe nella tabella) definisce la soglia al di sopra della quale un problema di indice in un memo è considerato come critico dal punto di vista delle performance.

  • Dimensione performance (campo NBLIGTB)

Questa grandezza (in numero di righe nella tabella) definisce la soglia al di sopra della quale un problema di indice in un memo è considerato come serio dal punto di vista delle performance.

  • Dimensione warning (campo NBLIGWARN)

Questa grandezza (in numero di righe nella tabella) definisce la soglia al di sotto della quale un problema di indice in un memo è considerato come in grado di porre dei problemi dal punto di vista delle performance. A partire da questa soglia, un messaggio di avviso verrà visualizzato (se non si superano le soglie successive).

Chiudi

 

Job batch

Questa funzione può essere lanciata in batch, ma non esiste job standard dedicato al suo lancio.

Messaggi di errore

Non esistono messaggi di errore ad eccezione di quelli generici.

Tabelle utilizzate

SEEREFERTTO Riferirsi alla documentazione di Implementazione