oracle session_wait,转载:学习Oracle动态性能表-(8)-V$SESSION_WAIT,V$SESSION_EVENT

(1)-V$SESSION_WAIT

这是一个寻找性能瓶颈的关键视图。它提供了任何情况下session在数据库中当前正在等待什么(如果session当前什么也没在做,则显示它最后的等待事件)。当系统存在性能问题时,本视图可以做为一个起点指明探寻问题的方向。

V$SESSION_WAIT中,每一个连接到实例的session都对应一条记录。

V$SESSION_WAIT中的常用列

lSID: session标识

lEVENT: session当前等待的事件,或者最后一次等待事件。

lWAIT_TIME: session等待事件的时间(单位,百分之一秒)如果本列为0,说明session当前session还未有任何等待。

lSEQ#: session等待事件将触发其值自增长

lP1, P2, P3: 等待事件中等待的详细资料

lP1TEXT, P2TEXT, P3TEXT: 解释说明p1,p2,p3事件

附注:

1.State字段有四种含义﹕

(1)Waiting:SESSION正等待这个事件。

(2)Waited unknown time:由于设置了timed_statistics值为false,导致不能得到时间信息。表示发生了等待,但时间很短。

(3)Wait short time:表示发生了等待,但由于时间非常短不超过一个时间单位,所以没有记录。

(4)Waited knnow time:如果session等待然后得到了所需资源,那么将从waiting进入本状态。

2.Wait_time值也有四种含义:

(1)值>0:最后一次等待时间(单位:10ms),当前未在等待状态。

(2)值=0:session正在等待当前的事件。

(3)值=-1:最后一次等待时间小于1个统计单位,当前未在等待状态。

(4)值=-2:时间统计状态未置为可用,当前未在等待状态。

3.Wait_time和Second_in_wait字段值与state相关:

(1)如果state值为Waiting,那么wait_time值无用。Second_in_wait值是实际的等待时间(单位:秒)。

(2)如果state值为Wait unknow time,那么wait_time值和Second_in_wait值都无用。

(3)如果state值为Wait short time,那么wait_time值和Second_in_wait值都无用。

(4)如果state值为Waiting known time,那么wait_time值就是实际等待时间(单位:秒),Second_in_wait值无用。

V$SESSION_WAIT中的连接列

Column        View                     Joined Column(s)

SID              V$SESSION          SID

示例:

1.列出当前系统的等待事件

SELECTevent,

sum(decode(wait_time,0,1,0)) "Curr",

sum(decode(wait_time,0,0,1)) "Prev",

count(*)"Total"

FROMv$session_waitGROUPBYeventORDERBYcount(*);

EVENT                                             Prev       Curr       Tot

---------------------------------------------       ----        -----       -----

PL/SQL lock timer                             0            1            1

SQL*Net more data from client           0            1            1

smon timer                                        0            1            1

pmon timer                                        0            1            1

SQL*Net message to client                  2            0            2

db file scattered read                           2            0            2

rdbms ipc message                            0            7            7

Enqueue                                           0            12           12

pipe get                                             0            12           12

db file sequential read                          3            10           13

latch free                                          9            6            15

SQL*Net message from client             835        1380       2215

这个按事件和wait_time的分组查询列出下列的信息:

l多数的session都是空闲事件如:SQL*Net message from client, pipe get, PMON timer等。

lsession的cpu占用可以通过上次session的非等待事件大致算出,除此问题外:看起来多数session没有在等待什么事情(难道他们都在干活?)但其最后等待事件都是SQL*Net message from client。

2.列出指定ID的等待事件

select*fromv$session_waitwheresid=100;

3.应用p1,p2,p3进行等待事件的分析

v$session_wait视图的列代表的缓冲区忙等待事件如下:

P1—与等待相关的数据文件的全部文件数量。

P2—P1中的数据文件的块数量。

P3—描述等待产生原因的代码。

例:selectp1 "File #", p2 "Block #", p3 "Reason Code"

fromv$session_wait

whereevent ='buffer busy waits';

如果以上查询的结果显示一个块在忙等待,以下的查询将显示这一块的名称和类型:

selectowner, segment_name, segment_type

fromdba_extents

wherefile_id = &P1and&P2betweenblock_idandblock_id + blocks -1;

我们也可以查询dba_data_files以确定等待的文件的file_name,方法是使用v$session_wait中的P1。

从v$session_wait中查询P3(原因编码)的值可以知道session等待的原因。原因编码的范围从0到300,下列为部分编码所代表的事项:

0 块被读入缓冲区。

100 我们想要NEW(创建)一个块,但这一块当前被另一session读入。

110 我们想将当前块设为共享,但这一块被另一session读入,所以我们必须等待read()结束。

120 我们想获得当前的块,但其他人已经将这一块读入缓冲区,所以我们只能等待他人的读入结束。

130 块被另一session读入,而且没有找到其它协调的块,所以我们必须等待读的结束。缓冲区死锁后这种情况也有可能产生。所以必须读入块的CR。

200 我们想新创建一个block,但其他人在使用,所以我们只好等待他人使用结束。

210 Session想读入SCUR或XCUR中的块,如果块交换或者session处于非连续的TX模式,所以等待可能需要很长的时间。

220 在缓冲区查询一个块的当前版本,但有人以不合法的模式使用这一块,所以我们只能等待。

230 以CR/CRX方式获得一个块,但块中的更改开始并且没有结束。

231 CR/CRX扫描找到当前块,但块中的更改开始并且没有结束。

(2)-V$SESSION_EVENT

本视图记录了每个session的每一项等待事件。由上文所知V$SESSION_WAIT显示了session的当前等待事件,而V$SESSION_EVENT则记录了session自启动起所有的事件。

V$SESSION_EVENT中的常用列

lSID:session标识

lEVENT:session等待的事件

lTOTAL_WAITS:此session当前事件的总等待数

lTIME_WAITED:此session总等待时间(单位,百分之一秒)

lAVERAGE_WAIT:此session当前事件平均等待时间(单位,百分之一秒)

lTOTAL_TIMEOUTS:等待超时次数

其它用法与V$SESSION_WAIT相似,不详述了

附注:

Oracle的等待事件是衡量Oracle运行状况的重要依据及指标。等待事件的概念是在Oracle7.0.1.2中引入的,大致有100个等待事件。在Oracle 8.0中这个数目增加到了大约150个,在Oracle8i中大约有200个事件,在Oracle9i中大约有360个等待事件。主要有两种类别的等待事件,即空闲(idle)等待事件和非空闲(non-idle)等待事件。

关于空闲事件和非空闲事件目前通过google可以搜索到非常多详尽的相关信息,同时

Oracle Database Performance Tuning Guide and Reference中关于Wait Events也有非常详尽的描述,在此就不多费口舌了。不过我在itpub论坛看到有热心人整理的chm格式非空闲事件说明,有兴趣的朋友可以下载,链接如下:

非空闲事件说明

详见:http://www.itpub.net/728733.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/488937.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为了研究因果关系,原来科学家在这么多方向上都有尝试

来源:混沌巡洋舰1. 为何关注因果关系在现代科学之前,不管东西方,都是从经验出发,通过归纳获得知识,然而这样的知识,受限于观测,无法产生突破性的成果,在这样的模式下,再探…

[leetcode sort]56. Merge Intervals

Given a collection of intervals, merge all overlapping intervals. For example,Given [1,3],[2,6],[8,10],[15,18],return [1,6],[8,10],[15,18]. 合并重叠区间 1 class Solution(object):2 def merge(self, intervals):3 """4 :type i…

oracle solaris 内核 源码,直接安装内核区域

直接安装内核区域直接安装是缺省的内核区域安装方法。在直接安装中,安装程序将在全局区域中运行。缺省情况下,安装程序将创建和格式化内核区域引导磁盘,并使用全局区域的 pkg 发布者在该磁盘上安装 Oracle Solaris 软件包。注 -在内核区域直接…

mysql 有一组经纬度 返回在某个区域内_Qt编写地图综合应用17-地址经纬度互转

## 一、前言地址和经纬度互相转换的功能也经常用到,比如上次的路线方案查询的功能,之前官网是提供了直接输入出发地点和目的地的中文汉字,就可以查询到最优的路线,后面只支持输入出发地点和目的地的经纬度坐标了,这个就…

杨强 : 迁移学习——人工智能的最后一公里

来源:智能系统学报11月30日上午,第九届吴文俊人工智能科学技术奖颁奖典礼暨2019中国人工智能产业年会在苏州广电大厦演播厅隆重举行。本届大会主题是“突破关键技术赋能产业落地”。大会邀请到国家部委专家、两院院士和产业领军人士,围绕77场…

《Spring》(十六)---- JDBC

一般情况下&#xff0c;都是在DAO类中使用JdbcTemplate&#xff0c;JdbcTemplate在XML配置文件中配置好&#xff0c;直接在DAO中注入即可。 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/be…

直接点oracle表编辑器,DbForge Studio for Oracle入门教程:如何在表编辑器中创建表...

dbForge Studio for Oracle是一个功能强大的集成开发环境(IDE)&#xff0c;它提供了通用的数据编辑工具来管理数据库内和外部数据&#xff0c;能够帮助Oracle开发者提高PL/SQL的编码速度。【dbForge Studio for Oracle 最新试用版下载】在本文示例中&#xff0c;我们将创建一个…

设置窗口置顶_这三个应用,每一个都能让你置顶。

| 当你有多个窗口同时打开&#xff0c;置顶其中某个或某些&#xff0c;能够方便你对比、学习、抄写……但不是所有软件都有这个功能&#xff0c;所以你需要今天的小干货。|-----------你的高效生活视频书。将窗口置顶&#xff0c;可以方便我们对比、写作、修改文案或代码&#…

汽车传感器科普

来源&#xff1a;湖杉资本先进驾驶辅助系统&#xff08;Advanced Driver Assistant System&#xff09;&#xff0c;简称ADAS&#xff0c;是利用安装于车上的各式各样的传感器&#xff0c; 在第一时间收集车内外的环境数据&#xff0c; 进行静、动态物体的辨识、侦测与追踪等技…

人工智能的现状与未来

来源&#xff1a; CIO之家几十年来计算速度飞速提高&#xff0c;从最初的科学数学计算演变到了现代的各种计算机应用领域&#xff0c;诸如多媒体应用&#xff0c;计算机辅助设计&#xff0c;数据库&#xff0c;数据通信&#xff0c;自动控制等等&#xff0c;人工智能是计算机科…

php分页技术的作用,分页原理技术细节剖析(php+mysql)实例

提到分页&#xff0c;大家都不陌生&#xff0c;在我们日常浏览网页时常遇到&#xff0c;尤其新闻文章列表等都有分页&#xff0c;如下图所示&#xff1a;分页实例下面&#xff0c;通过一个实例为大家剖析一下分页原理上技术细节。一、功能开发思路在分页功能的实现前&#xff0…

python idle 中文_Python IDLE 中文乱码问题

最近忙完了一个比较大的 GIS 软件系统&#xff0c;于是闲暇之余想研究一下开源的技术&#xff0c;纵观当前开源桌面 GIS 软件领域&#xff0c;最牛叉的莫过于大名鼎鼎的 Quantum GIS&#xff0c;简称 QGIS。做过 GIS 的人都知道&#xff0c;ESRI ArcGIS 是 GIS 软件领域迄今为止…

常见浏览器兼容性问题及解决方案

常见浏览器兼容性问题及解决方案&#xff1a; 1.不同浏览器的默认内外边距和内外补丁不同。 解决方案&#xff1a;css设置 *{margin:0; padding:0;} *是通配符&#xff0c;匹配所有html标签。 2.块级元素float之后&#xff0c;又有横向margin时&#xff0c;IE6显示margin比设置…

2020年物联网发展现状与趋势预测

来源&#xff1a;北京物联网智能技术应用协会一、综述物联网源于互联网领域&#xff0c;是信息科学技术产业的第三次革命。物联网是基于互联网&#xff0c;让所有物体能够独立寻址的普通物理对象实现互联互通的网络。简单说&#xff0c;就是通过安装信息传感设备&#xff0c;如…

shell中执行某条语句失败能不能重复执行_如何理解Mysql中的事务隔离级别?

要说清楚Mysql中的事务隔离级别&#xff0c;我们先从事务的定义说起。事务&#xff0c;是一个或一组sql语句组成的一个执行单元&#xff0c;这个执行单元要么全部执行&#xff0c;要么全部不执行。整个单独单元作为一个不可分割的整体&#xff0c;如果单元中某条sql语句一旦执行…

oracle 试图访问已经在使用的事物处理临时表,解决ORA-14450:试图访问已经在使用的事务处理临时表...

在开发使用过程中&#xff0c;一个存储过程用到表TMP_DA_GMS,允许程序的时候报错&#xff0c;后台查询到错误原因是因为表里有个字段需要设置为可以为N在开发使用过程中&#xff0c;一个存储过程用到表TMP_DA_GMS,允许程序的时候报错&#xff0c;后台查询到错误原因是因为表里有…

linux 下环境变量设置

Ubuntu Linux系统包含两类环境变量&#xff1a;系统环境变量和用户环境变量。系统环境变量对所有系统用户都有效&#xff0c;用户环境变量仅仅对当前的用户有效。 修改用户环境变量 用户环境变量通常被存储在下面的文件中&#xff1a; ~/.profile ~/.bash_profile 或者 ~./bas…

《数字孪生体技术白皮书(2019)》(简版)全文

来源&#xff1a;《数字孪生体实验室原创》12月27日&#xff0c;数字孪生体实验室与安世亚太联合正式发布了《数字孪生体技术白皮书&#xff08;2019&#xff09;》。白皮书的第一部分关注对数字孪生体的抽象和总结。无论是参考架构、成熟度模型还是关键技术&#xff0c;都以“…

oracle批量构造数据,oracle批量构造数据方法 - rd_clp的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

1.一种是只要数据条数&#xff0c;至于里面内容可以是序列方式&#xff0c;另外可能几个表中相互id的关联&#xff0c;那建议用存诸过程写.表a(id,name)有学员的信息表b(id,testid,subject,score)有学员的考试成绩假设表a与表b的id都是有seq的自增长系列&#xff1b;表b.testid…

sql 删除字段中下划线_SQL基础教程知识点总结

1. ●列 ●字段 ●行 ●记录 2. SQL 语句及其种类 DDL DDL(Data Definition Language&#xff0c;数据定义语言)用来创建或者删除存储 数据用的数据库以及数据库中的表等对象。DDL 包含以下几种指令。 CREATE:创建数据库和表等对象 DROP: 删除数据库和表等对象 ALTER: 修改数据…