Historial de Oracle SQL

Autor: Roger Morrison
Fecha De Creación: 21 Septiembre 2021
Fecha De Actualización: 18 Noviembre 2024
Anonim
QUIEN BORRO LA INFO ? (Historial de tabla con Triggers)
Video: QUIEN BORRO LA INFO ? (Historial de tabla con Triggers)

Contenido

Como Oracle toma muestras y graba todas las sesiones activas en la base de datos, una simple consulta permite obtener el historial de sentencias SQL de un espacio de tiempo dado.


Oracle graba información del historial de SQL en v $ active_session_history (portátil con base de datos de registro en 15.4 "wide screen image by .shock from Fotolia.com)

importancia

Oracle recoge automáticamente muestras de todas las sesiones que se ejecutan en la base de datos cada segundo y guarda información del historial de SQL en la vista de diccionario de datos v $ active_session_history. Este es un búfer circular, por lo que al estar lleno, Oracle archiva automáticamente la información de él en la vista de diccionario de datos dba_hist_active_sess_history antes de sobreescribirla.

función

Se puede obtener un historial de las sentencias SQL ejecutadas en un espacio de tiempo en la base de datos a través de una consulta a estas dos vistas. Por ejemplo, la siguiente consulta devuelve la lista de los primeros 4000 caracteres de las sentencias SQL ejecutadas entre las 9:00 y las 9:05 de la mañana del 30 de septiembre de 2010:


select a.sql_id, dbms_lob.substr (b.sql_text, 4000,1) from dba_hist_active_sess_history a, dba_hist_sqltext b

donde muestra_time entre to_date ('20100930: 09: 00', 'yyyymmdd: hh24: mi')

and to_date ('20100930: 09: 01', 'yyyymmdd: hh24: mi') y b.sql_id = a.sql_id = a.sql_id

union all

select a.sql_id, dbms_lob.substr (b.sql_text, 4000,1) from v $ active_session_history a, v $ sqlarea b

donde muestra_time entre to_date ('20100930: 09: 00', 'yyyymmdd: hh24: mi') and

to_date ('20100930: 09: 01', 'yyyymmdd: hh24: mi') and b.sql_id = a.sql_id = a.sql_id

consideraciones

Además, Oracle genera, cada hora, estadísticas de ejecución de las sentencias SQL en su Automatic Workload Repository (repositorio automático de carga de trabajo). Puede ver qué sentencias SQL requieren más recursos en un momento dado haciendo una consulta a las vistas de diccionario de datos dba_hist_sqlstat y dba_hist_snapshot.


efectos

Por ejemplo, la siguiente consulta devuelve una lista de las sentencias SQL ejecutadas entre las 9 y las 10 de la mañana, además del tiempo de CPU, tiempo transcurrido, tiempo de io_wait y número de accesos a disco. La salida se ordena por tiempo de CPU.

En el caso de que se produzca un error en el sistema operativo, se debe tener en cuenta que, en el caso de que se produzca un error en el sistema operativo, se debe tener en cuenta que, en el caso de que se produzca un error en el sistema. (:): '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''.

/