Le metriche mantengono traccia di differenti eventi durante la vita del database [1]. Queste sono visibili da
GV$METRICNAME.METRIC_NAME.
Sono statistiche che misurano la variazione dei cambiamenti in statistiche di performance comulative [2]. L'idea di base è la seguente [5]:
Tra di esse troviamo: "CPU Usage Per Sec", "Elapsed Time Per User Call", "Host CPU Utilization", etc.
Prendo un valore V1, all'istante T1 ed uno V2, all'istante T2. A questo punto, la metrica è definita come rapporto (V2 – V1) / (T2 – T1). AWR le raccoglie automaticamente. Frequenza della raccolta e retention dei dati, sono specificati in
DBA_HIST_WR_CONTROL
SELECT snap_interval, retention FROM dba_hist_wr_control;
SNAP_INTERVAL
-------------------------------------
RETENTION
-------------------------------------
+00000 01:00:00.0
+00007 00:00:00.0
(profondità di 7 giorni, con raccolta ogni ora) e la modifica è possibileattraverso la funzione
DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS
BEGIN
dbms_workload_repository.modify_snapshot_settings(
interval => 60,
retention => 10*24*60
);
END;
Sono collezionate ogni minuto, storicizzate in memoria e quindi salvate nelle tabelle WRH$ (H=History) di AWR (il tablespace su cui risiedono è SYSAUX). Complessivamente, sono disponibili le seguenti [3][5]:
Table: Global
VIEW/TABLE |
GV$METRIC |
GV$METRIC_HISTORY |
Table: Information
VIEW/TABLE |
GV$METRICGROUP |
GV$METRICNAME |
DBA_HIST_METRIC_NAME |
WRH$_METRIC_NAME |
Sono disponibili per [5]
» System
» Sessions
» Services
» Events
» Files
e raggruppate come di seguito:
select GROUP_ID, GROUP_NAME from V$METRICGROUP order by GROUP_ID
GROUP_ID GROUP_NAME
---------- -------------------------------------------
0 Event Metrics
1 Event Class Metrics
2 System Metrics Long Duration
3 System Metrics Short Duration
4 Session Metrics Long Duration
5 Session Metrics Short Duration
6 Service Metrics
7 File Metrics Long Duration
9 Tablespace Metrics Long Duration
10 Service Metrics (Short)
Ed in
V$METRICNAME.METRIC_UNIT, troviamo l'unità di misura in cui viene espressa quella particolare metrica. Sono espresse per
» Valori assoluti
» Percentuali
» Per secondi e per transactioni
Ad esempio:
select group_id id, metric_name, metric_unit from v$metricname where group_id=1
ID METRIC_NAME METRIC_UNIT
---- ------------------------------- -----------
1 Total Wait Counts Waits
1 Total Time Waited CentiSeconds
1 Database Time Spent Waiting (%) % (TimeWaited / DBTime)
1 Average Users Waiting Counts Users
I valori degli utli 10 minuti sono visibili dalle GV$*, quelle degli utlimi 10+60 minuti dalle GV$*_HISTORY e quelle con retention superiore dalle DBA_HIST_* (le sottostanti tabelle sono le WRH$*). Le viste di sistema disponibili sono:
Table: Events
GROUP_ID | VIEW/TABLE |
0 | GV$EVENTMETRIC |
1 | GV$WAITCLASSMETRIC |
| GV$WAITCLASSMETRIC_HISTORY |
| WRH$_WAITCLASSMETRIC_HISTORY |
Table: System
GROUP_ID | VIEW/TABLE |
2/3 | GV$SYSMETRIC |
| GV$SYSMETRIC_HISTORY |
| GV$SYSMETRIC_SUMMARY |
| DBA_HIST_SYSMETRIC_HISTORY |
| DBA_HIST_SYSMETRIC_SUMMARY |
| WRH$_SYSMETRIC_HISTORY |
| WRH$_SYSMETRIC_SUMMARY |
Table: Session
GROUP_ID | VIEW/TABLE |
4/5 | V$SESSMETRIC |
| DBA_HIST_SESSMETRIC_HISTORY |
| WRH$_SESSMETRIC_HISTORY |
Table: Service
GROUP_ID | VIEW/TABLE |
6/10 | GV$SERVICEMETRIC |
| GV$SERVICEMETRIC_HISTORY |
Table: Files
GROUP_ID | VIEW/TABLE |
7 | GV$FILEMETRIC |
| GV$FILEMETRIC_HISTORY |
| DBA_HIST_FILEMETRIC_HISTORY |
| WRH$_FILEMETRIC_HISTORY |
Per il GROPU_ID 9 della V$METRICGROUP, non ho trovato associazioni. Suppongo, visto che si tratta di tablespace, che le corrispondenti metriche si potrebbero associare a quelle per "Files".
[1]
Oracle Metrics
[2]
Database Metrics
[3]
AUTOMATED WORKLOAD REPOSITORY
[4]
AWR Metrics
[5]
Automatic Workload Repository
Post update 2011/06/16