ASH
Active Session History
ASH (Active Session History) è un componente di Oracle Database che campiona lo stato di ogni sessione attiva una volta al secondo e conserva i dati in un buffer circolare in memoria (vista V$ACTIVE_SESSION_HISTORY).
Come funziona #
Ogni secondo Oracle registra per ogni sessione attiva:
- SQL in esecuzione (
SQL_ID) - Wait event corrente
- Programma e modulo chiamante
- Piano di esecuzione utilizzato (
SQL_PLAN_HASH_VALUE)
I dati più vecchi vengono scaricati automaticamente nelle tabelle AWR (DBA_HIST_ACTIVE_SESS_HISTORY) e conservati per il periodo configurato.
A cosa serve #
ASH è il microscopio del DBA: dove AWR mostra medie su intervalli orari, ASH permette di ricostruire cosa stava facendo una singola sessione in un preciso istante. È lo strumento ideale per:
- Identificare chi sta eseguendo un SQL problematico
- Capire quando un problema è iniziato (al secondo)
- Correlare sessioni, programmi e wait event in tempo reale
Quando si usa #
Si usa quando il report AWR ha già identificato un SQL o un wait event dominante e si ha bisogno di dettaglio: quale sessione, quale programma, a che ora esatta. La regola empirica: AWR per capire cosa è cambiato, ASH per capire perché.