Información histórica sesiones Oracle
A partir de Oracle 10.2 con ASH podemos consultar cierta información sobre las sessiones. Encuentro muy interesante poder consultar el número de sesiones conectadas a la base de datos en el pasado
para ver esta información podemos consultar estas vistas:
v$sysmetric_history --> Información a corto plazo, contiene datos de la última hora en períodos de minutos
dba_hist_sysmetric_summary -->Contiene datos del último mes a intervalos resumidos de 1 hora (Media, máxima y mínima de esa hora)
v$sysmetric_history y dba_hist_sysmetric_summary contiene información de un montón de métricas diferentes, así que tenemos que seleccionar la métrica que queramos, en este caso las sesiones:
set linesize 190 col METRIC_NAME for a100 select METRIC_ID, METRIC_NAME from v$sysmetric_history group by METRIC_ID, METRIC_NAME ;
Si queremos buscar las métricas disponible relacionadas con sesiones hacemos:
SQL> set linesize 190 col METRIC_NAME for a100 select METRIC_ID, METRIC_NAME from v$sysmetric_history where lower(METRIC_NAME) like '%session%' group by METRIC_ID, METRIC_NAME ; SQL> SQL> METRIC_ID METRIC_NAME ---------- ---------------------------------------------------------------------------------------------------- 2137 PQ QC Session Count 2143 Session Count 2138 PQ Slave Session Count 2119 Session Limit % 2147 Average Active Sessions 2148 Active Serial Sessions 2149 Active Parallel Sessions 7 rows selected.
Si queremos ver las sessiones conectadas la la BBDD durante la hora anterior consultamos la vista v$sysmetric_history pasándole el metric_id que queramos, en este caso el de las sesiones:
set linesize 190 set pages 200 col METRIC_NAME for a40 col BEGIN_TIME for a20 col END_TIME for a20 COL METRIC_UNIT for a20 alter session set nls_date_format = 'dd.mm.yyyy hh24:mi:ss'; select * from v$sysmetric_history where METRIC_ID=2143 order by BEGIN_TIME;
SQL> set linesize 190 SQL> set pages 200 SQL> col METRIC_NAME for a40 SQL> col BEGIN_TIME for a20 SQL> col END_TIME for a20 SQL> COL METRIC_UNIT for a20 SQL> alter session set nls_date_format = 'dd.mm.yyyy hh24:mi:ss'; select BEGIN_TIME, END_TIME, VALUE, METRIC_UNIT from v$sysmetric_history where METRIC_ID=2143 order by BEGIN_TIME; Session altered. SQL> BEGIN_TIME END_TIME VALUE METRIC_UNIT -------------------- -------------------- ---------- -------------------- 09.10.2017 12:24:09 09.10.2017 12:25:10 357 Sessions 09.10.2017 12:25:10 09.10.2017 12:26:10 358 Sessions 09.10.2017 12:26:10 09.10.2017 12:27:09 355 Sessions 09.10.2017 12:27:09 09.10.2017 12:28:10 356 Sessions 09.10.2017 12:28:10 09.10.2017 12:29:09 355 Sessions 09.10.2017 12:29:09 09.10.2017 12:30:10 355 Sessions 09.10.2017 12:30:10 09.10.2017 12:31:10 355 Sessions 09.10.2017 12:31:10 09.10.2017 12:32:09 355 Sessions 09.10.2017 12:32:09 09.10.2017 12:33:10 355 Sessions 09.10.2017 12:33:10 09.10.2017 12:34:09 356 Sessions 09.10.2017 12:34:09 09.10.2017 12:35:10 356 Sessions 09.10.2017 12:35:10 09.10.2017 12:36:10 355 Sessions
pero si queremos consultar información mas antigua hacemos:
set linesize 190 set pages 200 col METRIC_NAME for a40 col BEGIN_TIME for a20 col END_TIME for a20 COL METRIC_UNIT for a20 select INSTANCE_NUMBER, BEGIN_TIME, END_TIME, METRIC_NAME, AVERAGE, MAXVAL, METRIC_UNIT from dba_hist_sysmetric_summary where METRIC_ID=2143 and INSTANCE_NUMBER=1 order by SNAP_ID;
Debido a que dba_hist_sysmetric_summary contiene valores resumidos por períodos de 1 hora, sacamos la media de sessiones durante esa hora y el máximo...
SQL> set linesize 190 SQL> set pages 200 SQL> col METRIC_NAME for a40 col BEGIN_TIME for a20 SQL> SQL> col END_TIME for a20 SQL> COL METRIC_UNIT for a20 SQL> select INSTANCE_NUMBER, BEGIN_TIME, END_TIME, METRIC_NAME, AVERAGE, MAXVAL, METRIC_UNIT from dba_hist_sysmetric_summary where METRIC_ID=2143 and INSTANCE_NUMBER=1 order by SNAP_ID; INSTANCE_NUMBER BEGIN_TIME END_TIME METRIC_NAME AVERAGE MAXVAL METRIC_UNIT --------------- -------------------- -------------------- ---------------------------------------- ---------- ---------- -------------------- 1 29.08.2017 22:59:53 29.08.2017 23:59:53 Session Count 324,85 327 Sessions 1 29.08.2017 23:59:53 30.08.2017 00:59:53 Session Count 325 327 Sessions 1 30.08.2017 00:59:53 30.08.2017 01:59:53 Session Count 323,833333 327 Sessions 1 30.08.2017 01:59:53 30.08.2017 02:59:54 Session Count 324,3 328 Sessions 1 30.08.2017 02:59:54 30.08.2017 03:59:53 Session Count 324,516667 329 Sessions 1 30.08.2017 03:59:53 30.08.2017 04:59:53 Session Count 322,533333 327 Sessions 1 30.08.2017 04:59:53 30.08.2017 05:59:54 Session Count 322,483333 326 Sessions 1 30.08.2017 05:59:54 30.08.2017 06:59:54 Session Count 324,766667 328 Sessions 1 30.08.2017 06:59:54 30.08.2017 07:59:53 Session Count 324,983333 327 Sessions 1 30.08.2017 07:59:53 30.08.2017 08:59:54 Session Count 326,1 329 Sessions 1 30.08.2017 08:59:54 30.08.2017 09:59:54 Session Count 328,166667 332 Sessions 1 30.08.2017 09:59:54 30.08.2017 10:59:54 Session Count 326,85 335 Sessions 1 30.08.2017 10:59:54 30.08.2017 11:59:54 Session Count 325,116667 329 Sessions 1 30.08.2017 11:59:54 30.08.2017 12:59:54 Session Count 325,966667 330 Sessions 1 30.08.2017 12:59:54 30.08.2017 13:59:54 Session Count 325,8 330 Sessions .................................................................................................................................................... .................................................................................................................................................... 1 09.10.2017 07:00:09 09.10.2017 08:00:09 Session Count 351,983333 357 Sessions 1 09.10.2017 08:00:09 09.10.2017 09:00:09 Session Count 351,85 358 Sessions 1 09.10.2017 09:00:09 09.10.2017 10:00:09 Session Count 352,566667 358 Sessions 1 09.10.2017 10:00:09 09.10.2017 11:00:10 Session Count 356,3 359 Sessions 1 09.10.2017 11:00:10 09.10.2017 12:00:09 Session Count 356,55 362 Sessionsdba_hist_sysmetric_summary contiene información de todas las instancias de la base de datos, con lo que si estás mirando un RAC debes de seleccionar el INSTANCE_NUMBER.
Para hacerse una idea general o bien hacer algún informe, podemos pasar esta información a una hoja de cálculo y hacer un gráfico...
Comentarios
Publicar un comentario