Tramite statspack è possibile monitorare le performance dei database del cluster.
Di seguito vengono riportati paramentri ed i corrispettivi valori di attenzione per garantire delle buone performance dell’istanza:

- Hard Parses: questo valore deve essere molto basso
- Buffer hit: questo valore non deve essere negativo ma vicino a 100
- Execute to Parse: questo valore non deve essere negative e potrebbe dipendere dalla dimensione della shared pool
- Latch free: se alti, i latch free indicano la presenza di contese, per verificare nel dettaglio i latch andare nella sezione del report relativa ai Latch

Nel report sono presenti anche dati relativi a SQL statement:

SQL ordered by Buffer Gets: query che durante l’esecuzione richiedono molte risorse di CPU
Se i valori di Buffer Gets e Executions sono molto alti, la query riportata deve essere modificata per essere più performante

SQL ordered by Physical Reads: query che durante l’esecuzione fanno in modo di effettuare molte letture fisiche. Se i valori di Physical Reads Executions sono elevati, la query segnalata deve essere ottimizzata.

SQL ordered by Parse Calls: il numero di parse delle singole query va confrontato col numero delle rispettive esecuzioni. Se il rapporto dei due valori (parse/executions) è uno a uno, vuol dire che:
1. le query non usano le bind variable
2. il parametro dell’init.ora session_cached_cursors è troppo basso
3. la shared pool è troppo piccola
4. il parametro cursor_sharing dell’init.ora è impostato al valore exact

Nel documento “Systemwide Tuning using STATSPACK Reports” doc.id: 228913.1, consultabile dal sito https://metalink.oracle.com, è riportata una panoramica dei parametri presenti nei report.
Per verificare le performance del database tramite lo strumento Statspack effettuare i seguenti passi operativi:

Monitor tramite esecuzione manuale snapshot

1. Collegarsi al server di cui si vogliono visualizzare le performance tramite l’utenza unix owner di Oracle
2. Digitare:
a. . $HOME/.profile_db
b. sqlplus perfstat/perfstat
c. exec snapshot.snap;

Monitor automatico tramite script in crontab

1. Inserire le istruzioni sopra riportate in uno script unix e schedularlo a cron negli intervalli desiderati.
2. Per inserire la riga nel cron digitare il comando: crontab –e
3. Esempio di riga da inserire nel crontab qualora si volessero eseguire gli snapshot di statspack ogni 15 minuti:
15 * * * * /product/oracle/product/admin/DB/scripts/statspack.sh