Traccia delle query oracle 

Introduzione

Questo strumento è accessibile da qualsiasi videata del software quando il databse utilizzato è Oracle™, tramite il menù Strumenti situato nella parte superiore della videata, che contiene le due seguenti scelte:

Attivazione traccia oracle

Mediante la funzione SQL_TRACE di Oracle, si attiva la registrazione dei comandi SQL eseguiti in un file che potranno in seguito essere analizzati.

Disattivazione traccia

Questa funzione lancia la rielaborazione tramite lo strumento oracle TKPROF che processa il file di traccia ottenuto dall'attivazione, poi ne visualizza il risultato. Ciò permette di vedere tutti i comandi SQL eseguiti durante l'attivazione.

Prerequisiti

Abilitazione

L'utente deve essere autorizzato ad usare il debugger (parametro DBG).

Vincolo tecnico

La funzione può funzionare solo se è installato un server di elaborazione e se è attivo sulla macchina del database.

Diritti dell'utente per Unix

Per le configurazioni in cui il server applicativo si trova su una macchina Unix, gli utenti che desiderano lanciare la traccia Oracle devono appartenere al gruppo DBA

Interfaccia utente

Quando si lancia la funzione, una videata permette di inserire un insieme di opzioni:

Recupero dei risultati

Si può scegliere di usare o no le tre opzioni seguenti

AGGREGATE

Indica se le registrazioni identiche debbano essere raggruppate in una sola query SQL o lasciate indipendenti

WAITS

Indica se i riepiloghi devono essere registrati per gli eventi di attesa. Questa opzione è disponibile solo dalla versione 9i

SYS

Indica se è necessario visualizzare l'SQL ricorsivo eseguito da SYS

Opzioni di ordinamento

Di default, i comandi SQL sono dettagliati per ordine cronologico ma è possibile precisare delle opzioni di ordinamento.

Vengono offerte più proposte di ordinamento e si troveranno per primi i comandi corrispondenti al costo più importante secondo l'ordinamento richiesto.

L'utente può anche scegliere da solo le opzioni di ordinamento volute mediante "Parametrizzazione ordinamento avanzato". La finestra corrispondente gli permetterà di scegliere tutte le opzioni possibili tra le seguenti (elencate per fase di elaborazione della query):

prscnt

Numero di chiamate di analisi (PARSE)

prscpu

Tempo CPU impiegato per l'analisi

prsela

Tempo trascorso per l'analisi

prsdsk

Numero di letture sul disco

prsqry

Numero di memoria cache per una lettura coerente durante l'analisi

prscu

Numero di buffer durante la fase di parse

prsmis

Numero di fallimenti nella cache « library » durante l'analisi

execnt

Numero di esecuzioni richiamate

execpu

Tempo CPU impiegato per l'esecuzione

exeela

Tempo trascorso durante l'esecuzione

exedsk

Numero di letture sul disco durante l'esecuzione

exeqry

Numero di memoria cache per una lettura coerente durante l'esecuzione

execu

Numero di buffer durante la fase di esecuzione

exerow

Numero di righe elaborate durante l'esecuzione

exemis

Numero di fallimenti nella cache « library » durante l'esecuzione

fchcnt

Numero di richieste di estrazione (FECTH)

fchcpu

Tempo CPU impiegato per l'estrazione

fchela

Tempo trascorso per l'estrazione

fchdsk

Numero di letture sul disco durante la FETCH

fchqry

Numero di memoria cache per una lettura coerente durante l'estrazione

fchcu

Numero di memoria cache per la lettura in corso durante l'estrazione

fchrow

Numero di righe elaborate durante l'estrazione.

Presentazione dei risultati

L'utente può scegliere di elencare solo i primi n comandi SQL riportati.

Nel caso in cui si sia scelto un ordinamento, si otterranno i primi n comandi SQL che corrispondono al costo più importante di tale ordinamento.

Spiegazione del risultato di tkprof

Count

Numero di analisi, esecuzioni e recuperi effettuati.
(Verificare la presenza di un valore maggiore di 0 prima di interpretare le altre colonne). A meno che si sia specificato AGGREGATE=no , TKPROF raggruppa le istruzioni SQL identiche .

CPU

Tempo CPU totale, espresso in secondi, dedicato alle fasi di analisi, di esecuzione e di recupero.

Elapsed

Tempo totale, in secondi, dedicato a tutte le richieste di analisi, di esecuzione o di recupero (in questa sede i waits sono aggiunti e dunque questo tempo comprende sia le operazioni Oracle che quelle CPU).
Bisogna verificare che non ci siano differenze notevoli tra CPU e Elapsed

Disk

Numero totale di blocchi di dati letti fisicamente nei file di dati per le fasi di analisi, di esecuzione o di recupero.

Query

Numero totale di buffer estratti in modo coerente per tutte le fasi.

Current

Numero totale di buffer estratti in modo corrente per tutte le fasi.

Rows

Numero totale di righe elaborate (ma ciò non riguarda le sotto richieste)
- Select: questo numero si trova nella colonna Fetch
- Insert , Update e Delete: questo numero si trova nella colonna Execute

Errori

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

"Errore al momento dell'accesso al server del database"

L'accesso alla macchina del database non è possibile, non esiste server di elaborazione o non è avviato.

"Errore di accesso alla directory delle tracce del database"

La directory indicata come directory delle tracce non è accessibile