v$active_session_history
内容反应了SGA中ASH buffer。Oracle每一秒写入一次ASH buffer。在查询时,一般按照sample_time 排序。v$session针对当前的会话(session),而这两个视图保存了历史信息。当一条SQL已经完成,断开会话时,这两个视图就很有用。
例子:
SELECT * FROM dba_hist_active_sess_history
where session_id = (select sid from v$mystat where rownum =1)
order by sample_time;
ASH buffer空间有限,Oracle会将其内容持久化到dba_hist_active_sess_history。dba_hist_active_sess_history的列多了snap_id, dbid, instance_number,其他完全一致。
精确定位SQL
- session_id
- Session_serial#
- user_id
- sql_id
- Sql_child_number
sql_id, sql_child_number, sql_plan_hash_value,可以找到对应的执行计划。
并发
根据如下信息可以找到某slave的QC
- qc_instance_id
- qc_session_id
- qc_session_serial#