11g v$active_session_history的列说明
http://blog.itpub.net/8242091/viewspace-773696 11g v$active_session_history的新增列
http://blog.csdn.net/chncaesar/article/details/17488195 SQL执行计划及统计信息相关视图
http://blog.itpub.net/8242091/viewspace-613107/ v$active_session_history的wait_time和time_waited 列
很多知识我都还停留在10g,今天同事在ASH中直接就找到了SQL语句消耗的PGA,才发现,11gR2的ASH多了如此多的列
1.标示这条ASH记录是否被刷入了磁盘
IS_AWR_SAMPLE dba_hist_active_sess_history中就没有这一列
2.SQL语句信息
SQL_OPNAME SQL_OPCODE的翻译名,SQL语句类型
3.对于递归SQL,捕获其父SQL的信息
TOP_LEVEL_SQL_ID
TOP_LEVEL_SQL_OPCODE
可以通过这个列,找到存过中最消耗资源的SQL,或者DDL递归调用中,最慢得SQL语句
SELECT sql_id,count(*) FROM v$active_session_history
WHERE TOP_LEVEL_SQL_ID='5w6mc35fa18tk'
GROUP BY sql_id
ORDER BY 2 DESC;
4.在ASH中捕获执行计划信息,包括这个语句正在执行哪一步操作
SQL_PLAN_LINE_ID
SQL_PLAN_OPERATION
SQL_PLAN_OPTIONS
可以通过这些列,找到SQL语句最慢得地方,就需要优化这个
SELECT A.SQL_PLAN_HASH_VALUE,
A.SQL_PLAN_LINE_ID,
A.SQL_PLAN_OPERATION,
A.SQL_PLAN_OPTIONS,
B.OWNER || '.' || B.OBJECT_NAME OBJECT_NAME,
COUNT(*)
FROM V$ACTIVE_SESSION_HISTORY A, DBA_OBJECTS B
WHERE A.SQL_ID = '11jpuymjh9vsc'
AND A.CURRENT_OBJ# = B.OBJECT_ID(+)
GROUP BY A.SQL_PLAN_HASH_VALUE,
A.SQL_PLAN_LINE_ID,
A.SQL_PLAN_OPERATION,
A.SQL_PLAN_OPTIONS,
B.OWNER || '.' || B.OBJECT_NAME
ORDER BY COUNT(*) DESC;
5.SQL一次执行的唯一标示符, SQL_ID, SQL_EXEC_START, SQL_EXEC_ID 三列来标示一次SQL的执行
并且,可以找到这次SQL的开始执行时间,以及计算出其这次已经执行了多少时间
SQL_EXEC_ID
SQL_EXEC_START
判断一下一个SQL,有没有出现执行的很慢的时候,比如平时1s,有段时间,执行超过12s
SELECT SQL_ID, SQL_EXEC_START, SQL_EXEC_ID, COUNT(*)
FROM V$ACTIVE_SESSION_HISTORY A
WHERE A.SQL_ID = '11jpuymjh9vsc'
GROUP BY SQL_ID, SQL_EXEC_START, SQL_EXEC_ID
ORDER BY COUNT(*) DESC
6.并行增强,增加了QC_SESSION_SERIAL# 列,并且增加了PX_FLAGS状态列
QC_SESSION_SERIAL#
PX_FLAGS
QC_SESSION_ID <> SESSION_ID 的,都是并行子进程。增加了QC_SESSION_SERIAL#可以定义到唯一的一个协调者
7.Blocking增强,11g通过Blocking解决问题已经很容易了
BLOCKING_INST_ID 11g新增,怪的很,10g的v$session有该列,但是ASH没有
BLOCKING_HANGCHAIN_INFO 指出BLOCKING_SESSION是否在hang chain上
REMOTE_INSTANCE# 用于集群等待,标明需要请求的数据块应该由那个实例提供。只有cluster类等待才有这个
8.当前处理的对象,新增了一个row# ,以前已经有CURRENT_OBJ#,CURRENT_FILE#,CURRENT_BLOCK#了
CURRENT_ROW#
可以检查TX等待柱塞的行,通过拼装ROWID可以找到柱塞的行。
SELECT A.SQL_ID,
A.CURRENT_OBJ#,
A.CURRENT_FILE#,
A.CURRENT_BLOCK#,
A.CURRENT_ROW#,
COUNT(*)
FROM dba_hist_active_sess_history A
WHERE A.EVENT = 'enq: TX - row lock contention'
GROUP BY A.SQL_ID,
A.CURRENT_OBJ#,
A.CURRENT_FILE#,
A.CURRENT_BLOCK#,
A.CURRENT_ROW#
ORDER BY COUNT(*) DESC
9.CONSUMER_GROUP
CONSUMER_GROUP_ID,DBA_RSRC_CONSUMER_GROUPS对应
10.Time Mobel
TIME_MODEL 后面的IN,按照二进制组合起来的值,在这次采样间隔内,会话做了那些操作
IN_CONNECTION_MGMT connection management call elapsed time
IN_PARSE parse time elapsed
IN_HARD_PARSE hard parse elapsed time
IN_SQL_EXECUTION sql execute elapsed time
IN_PLSQL_EXECUTION PL/SQL execution elapsed time
IN_PLSQL_RPC inbound PL/SQL rpc elapsed time
IN_PLSQL_COMPILATION PL/SQL compilation elapsed time
IN_JAVA_EXECUTION Java execution elapsed time
IN_BIND repeated bind elapsed time
IN_CURSOR_CLOSE
IN_SEQUENCE_LOAD sequence load elapsed time
当AWR中显示某个TM存在问题时,通过这些列,找到TOP 进程或者SQL
存在硬解析的SQL,结果应该和v$sql去比较下
SELECT SQL_PLAN_HASH_VALUE, COUNT(*)
FROM V$ACTIVE_SESSION_HISTORY
WHERE IN_HARD_PARSE = 'Y'
GROUP BY SQL_PLAN_HASH_VALUE
ORDER BY 2 DESC
11.REPLAY特性的会话标示
REPLAY_OVERHEAD
IS_REPLAYED
DBREPLAY_FILE_ID
DBREPLAY_CALL_COUNTER
12.时间统计
TM_DELTA_TIME 一次统计间隔
TM_DELTA_CPU_TIME 在这个间隔内,CPU时间
TM_DELTA_DB_TIME 在这个间隔内,DB时间
因为ASH采样的粒度是1秒,但是进程并不是在1s内都ACTIVE的。该统计的粒度是微秒(百万分之一秒)
TM_DELTA_TIME - TM_DELTA_DB_TIME = INACTIVE TIME
TM_DELTA_DB_ TIME - TM_DELTA_CPU_TIME = WAIT TIME
13.IO网络统计,
DELTA_TIME
DELTA_READ_IO_REQUESTS
DELTA_WRITE_IO_REQUESTS
DELTA_READ_IO_BYTES
DELTA_WRITE_IO_BYTES
DELTA_INTERCONNECT_IO_BYTES
统计时间内,物理读/写/心跳流量高的SQL
SELECT SQL_ID,
SUM(DELTA_READ_IO_REQUESTS),
SUM(DELTA_WRITE_IO_REQUESTS),
SUM(DELTA_READ_IO_BYTES),
SUM(DELTA_WRITE_IO_BYTES),
SUM(DELTA_INTERCONNECT_IO_BYTES)
FROM V$ACTIVE_SESSION_HISTORY
GROUP BY SQL_ID
ORDER BY 2 DESC
14.PGA/TMP当前使用统计
PGA_ALLOCATED
TEMP_SPACE_ALLOCATED
select * from (
select sample_time,session_id,sql_id,PGA_ALLOCATED,TEMP_SPACE_ALLOCATED from v$active_session_history
where TEMP_SPACE_ALLOCATED is not null
order by TEMP_SPACE_ALLOCATED desc
) where rownum<=20
15.其他
IS_SQLID_CURRENT 指出该SQL_ID是否是正在执行的,该列具体意义不明
TOP_LEVEL_CALL#
TOP_LEVEL_CALL_NAME v$toplevelcall中有对应,具体怎么用不明
11g v$active_session_history的列说明相关推荐
- 添加列oracle默认值,Oracle 11g增加列,并带默认值的新特性
在Oracle 11g以前,如果要在一个大表中增加一列,并设置默认值,那将是一个非常悲剧的事情.有些时候不得不选择在线重定义功能来实现 Oracle 11g增加列,并带默认值的新特性 [日期:2014 ...
- 下列那些是oracle的伪列,oracle伪列
在对表进行查询时,我们可以对oracle提供的一系列伪列(pseudocolumns)进行查询,这些伪列不存储在表中,oracle不允许对伪列进行dml操作. 在oracle 10g和11g下,伪列包 ...
- Oracle Acs资深顾问罗敏 老罗技术核心感悟:11g的数据压缩技术
作者为: SHOUG成员 – ORACLE ACS高级顾问罗敏 以下是各种表压缩算法特性的进一步描述: IT系统数据量与日俱增,对IT系统设计.开发.运维各方面人员都带来了巨大挑战.除在硬件层面不断进 ...
- oracle 列转行sql函数
1.列转行 列拼接 wm_concat() --11g listagg() within group() 列转行汇总数据 decode() --用decode实现行转列 --适用范围:8i,9i,10 ...
- 11g R1 R2新特性介绍(针对DBA和开发者)
首先我要说明:本文主要目的是帮助初级和中级水平的Oracle专业人士了解Oracle系统及更好地优化它.后面的章节里也介绍了不少专家主题,但首要的任务却是协助那些被性能问题折磨得很沮丧的专业人士,他们 ...
- Oracle 12c 关于密码(password)的几个新特性小结
点击▲关注 "数据和云" 给公众号标星置顶 更多精彩 第一时间直达 作者 | 张维照,Oracle ACEA,2006年起从事数据库管理工作,2009年转 Oracle,从事过 ...
- 农夫山泉:HANA应用在企业中层层展现
商务分析成为企业信息化应用的一大热点,它的出现,为企业提升洞察力和加强从战略到执行的管理提供了新的帮助.但在实际应用中,不难发现,传统的数据仓库和数据分析技术,在应对海量及实时数据的处理上都很难做好. ...
- oracle分区表的优势
分区表的作用: Oracle 的表分区功能可以使某些查询以及维护操作的性能大大提高 分区表优缺点: (1)由于将数据分散到各个分区中,减少了数据损坏的可能性: (2)可以对单独的分区进行备份和恢复: ...
- oracle数据库调优总结(2)-转
以前的会话 V$session视图显示一个会话出现性能问题的原因,但是导致性能问题的会话已经消失.另一个重要视图v$session_event,为会话显示所有它的等待时间,但是和v$session一样 ...
最新文章
- Swift default参数
- 抖音发布特效数据报告:每五个投稿有一个使用特效
- 关于文献检索的一些思考
- 每日一皮:雷神索尔的锤子为什么这么重?
- GitHub 宣布正式收购 npm | 云原生生态周报 Vol. 42
- Python自动解压各种压缩文件
- ElasticSearch添加映射
- python传输大文件_python之socket运用之传输大文件
- corda_Corda服务的异步流调用
- QT程序启动画面问题
- 3. 什么是icmp?icmp与ip的关系_Java抽象类、内部、类接口到底是什么?
- c语言与西门子plc通讯,西门子PLC四种核心通讯方式汇总学习
- 基于Android的办公自动化系统APP设计与实现
- 泡泡龙游戏开发系列教程(三)
- 如何查看电脑系统版本
- 水晶报表导出PDF or Excel,并返回文件到用户的IE浏览器中
- Destroying Array
- word文档乱码了怎么办
- Talk预告 | 上海交通大学计算机系博士生李杰锋方浩树:多人场景,全身136关键点检测与跟踪框架AlphaPose技术讲解
- 计算机桌面都有说明,电脑重启后桌面所有的图标都没了怎么解决