Dalla figura su stante è possibile osservare attraverso uno schemetto la struttura di tale repository. I dati statistici vengono in prima battuta memorizzati nella SGA. Successivamente ad ogni intervallo temporale (il default è 1 ora) questi dati vengono salvati attraverso delle snapshot (effettuate dal processo MMON) nel tablespace SYSAUX e conservate per un periodo di retention (il default è 8 giorni).
Sia l'intervallo delle snapshot che la retention sono impostabili a caldo attraverso il package dbms_workload_repository.
Ad esempio se volessimo impostare un intervallo di snapshot di 15 minuti e una retention di 60 giorni, dovremmo lanciare:
execute dbms_workload_repository.modify_snapshot_settings (
interval => 15,
retention => 86400);
Per visualizzare le impostazioni correnti, è possibile interrogare la vista dba_hist_wr_control, ad esempio con la seguente query:
select
extract( day from snap_interval) *24*60+
extract( hour from snap_interval) *60+
extract( minute from snap_interval ) "Snapshot Interval",
extract( day from retention) *24*60+
extract( hour from retention) *60+
extract( minute from retention ) "Retention Interval"
from dba_hist_wr_control;
Le viste da cui leggere le statistiche salvate nella SGA piuttosto che negli snapshot sono molte e di non semplice comprensione. Oracle mette a disposizione uno strumento, il report AWR, attraverso il quale sono riportate in maniera più chiara e leggible le statistiche del database per intervallo temporale in formato testo o html. In aggiunta, Oracle esiste un secondo strumento l'Automatic Database Diagnostic Monitor (ADDM) attraverso il quale è possibile ricevere dei consigli "recommendation" sulle modifiche da apportare al database per migliorare le prestazioni ottenute nell'intervallo temporale considerato, ad esempio:
Per creare un report AWR o un ADDM, si utilizzano due script sql siti nella oracle_home del database:
report AWR:
SQL> @?/rdbms/admin/awrrpt.sql
report ADDM:
SQL> @?/rdbms/admin/addmrpt.sql
Dentro un report AWR, i dati sono suddivisi in quattro macro aree:
Time Model:
v$sys_time_model => dba_hist_sys_time_model
DB Time (tempo totale speso dal db per le chiamate dalle sessioni principali)
Automatic Tracking of Operation Times:
• Overall parse time (hard, soft, failed,..)
• SQL, PLSQL and Java overall execution times
Wait Model:
v$system_event => dba_hist_system_event
Wait Events categorizzati in base alla Solution Area (Application, concurrency..)
SQL statement statistics:
v$sqlstats => dba_hist_sqlstat
Utilizzo delle risorse: Executions, Physical Reads, Physical Writes Identificazione delle Top SQL usando le differenze nel kernel
OS Stats:
v$osstat => dba_hist_osstat
Nessun commento:
Posta un commento