Como muestras de Oracle y los registros de cada sesión activa que se ejecuta en la base de datos , una consulta simple hace posible la obtención de la historia de las sentencias SQL dentro de un plazo determinado. Importancia
Oracle muestras de forma automática todas las sesiones que se ejecutan en la base de datos cada segundo y registros SQL información de la historia en los $ active_session_history vista del diccionario de datos v . v $ active_session_history es un buffer circular, por lo que cuando se llena, Oracle archivos de forma automática la información de v $ active_session_history a dba_hist_active_sess_history vista de diccionario de datos, antes de sobrescribir los datos en vista v $ active_session_history .
función < br >
al consultar estos dos puntos de vista , la historia de las sentencias SQL ejecutadas durante una ventana de tiempo en la base de datos se puede obtener . Por ejemplo , la siguiente consulta genera la lista de los primeros 4000 caracteres de sentencias SQL ejecutadas 09 a.m.-9:05 am el 30 de septiembre de 2010:
seleccione a.sql_id , DBMS_LOB.SUBSTR ( n. sql_text , 4000,1 ) de dba_hist_active_sess_history a, b dba_hist_sqltext
donde sample_time entre to_date ( '20100930 : 09:00 ',' yyyymmdd : HH24 : MI ' )
y to_date ( '20100930 : 09:01 ',' yyyymmdd : HH24 : MI ' ) y b.sql_id = a.sql_id
union todo
seleccione a.sql_id , DBMS_LOB.SUBSTR ( b.sql_text , 4000 , 1 ) de v $ active_session_history a, v $ sqlarea b
donde sample_time entre to_date ( '20100930 : 09:00 ',' yyyymmdd : HH24 : MI ' ) e imágenes
to_date ( ' 20100930:09:01 ',' yyyymmdd : HH24 : MI ' ) y b.sql_id = a.sql_id
Consideraciones
Además , Oracle resume estadísticas de ejecución por hora de sentencias de SQL en su repositorio de carga de trabajo automática . Usted puede encontrar las declaraciones más intensivo de recursos SQL ejecutadas durante una ventana de tiempo mediante la consulta de ver diccionario de datos dba_hist_sqlstat junto con dba_hist_snapshot vista del diccionario de datos .
Efectos
Por ejemplo , la siguiente consulta devuelve la lista de sentencias SQL ejecutadas 09 a.m.-10 a.m. junto con su tiempo de CPU , el tiempo transcurrido, el tiempo y el número de io_wait diskreads . El resultado de esta consulta se ordenan por tiempo de CPU.
Seleccionar de dba_hist_sqlstat un dba_hist_sqltext b donde a.sql_id = b.sql_id y snap_id = ( seleccione snap_id distinto de dba_hist_snapshot donde TO_CHAR ( begin_interval_time , «AAAAMMDD : HH24 : MI ') = '20100930 : 09:00 ' y to_char ( end_interval_time , ' yyyymmdd : HH24 : MI ') = '20100930 : 10:00 ' ) ordenado por cpu_time
/foto