- 浏览: 1020500 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (529)
- 服务器 (8)
- jsp (1)
- java (6)
- AIX (1)
- solaris (3)
- linux学习 (53)
- javaScript (2)
- hibernate (1)
- 数据库 (74)
- sql语句 (8)
- oracle 学习 (75)
- oracle 案例 (42)
- oracle 管理 (42)
- Oracle RAC (27)
- oracle data guard (12)
- oracle 参数讲解 (14)
- Oracle 字符集 (8)
- oracle性能调优 (24)
- oracle备份与恢复 (12)
- oracle Tablespace (9)
- oracle性能诊断艺术 (1)
- oracle 11g学习 (5)
- oracle streams (1)
- oracle upgrade and downgrade (4)
- db2学习 (13)
- db2命令学习 (2)
- mysql (28)
- sql server (30)
- sql server 2008 (0)
- 工具 (10)
- 操作系统 (3)
- c++ (1)
- stock (1)
- 生活 (5)
- HADOOP (2)
最新评论
-
massjcy:
...
如何将ubuntu文件夹中文名改为英文 -
skypiea:
谢谢。。。
终于解决了。。。
Oracle 10.2.0.4(5)EM不能启动的解决方案(Patch 8350262) -
qwe_rt:
引用vi /etc/sysconfig/network 请问 ...
Linux操作系统下配置静态IP上网 -
liuqiang:
sudo killall -9 apache2
ps 和 kill 命令详解 -
dazuiba:
引用*绝杀 kill -9 PID 当使用此命令时,一定要通过 ...
ps 和 kill 命令详解
这是一个寻找性能瓶颈的关键视图。它提供了任何情况下session在数据库中当前正在等待什么(如果session当前什么也没在做,则显示它最后的等待事件)。当系统存在性能问题时,本视图可以做为一个起点指明探寻问题的方向。
V$SESSION_WAIT中,每一个连接到实例的session都对应一条记录。
V$SESSION_WAIT中的常用列
SID: session标识
EVENT: session当前等待的事件,或者最后一次等待事件。
WAIT_TIME: session等待事件的时间(单位,百分之一秒)如果本列为0,说明session当前session还未有任何等待。
SEQ#: session等待事件将触发其值自增长
P1, P2, P3: 等待事件中等待的详细资料
P1TEXT, P2TEXT, P3TEXT: 解释说明p1,p2,p3事件
附注:
1.State字段有四种含义﹕
Waiting:SESSION正等待这个事件。
Waited unknown time:由于设置了timed_statistics值为false,导致不能得到时间信息。表示发生了等待,但时间很短。
Wait short time:表示发生了等待,但由于时间非常短不超过一个时间单位,所以没有记录。
Waited knnow time:如果session等待然后得到了所需资源,那么将从waiting进入本状态。
Wait_time值也有四种含义:
值>0:最后一次等待时间(单位:10ms),当前未在等待状态。
值=0:session正在等待当前的事件。
值=-1:最后一次等待时间小于1个统计单位,当前未在等待状态。
值=-2:时间统计状态未置为可用,当前未在等待状态。
3.Wait_time和Second_in_wait字段值与state相关:
如果state值为Waiting,那么wait_time值无用。Second_in_wait值是实际的等待时间(单位:秒)。
如果state值为Wait unknow time,那么wait_time值和Second_in_wait值都无用。
如果state值为Wait short time,那么wait_time值和Second_in_wait值都无用。
如果state值为Waiting known time,那么wait_time值就是实际等待时间(单位:秒),Second_in_wait值无用。
V$SESSION_WAIT中的连接列
Column View Joined Column(s)
SID V$SESSION SID
示例:
1.列出当前系统的等待事件
SELECT event,
sum(decode(wait_time,0,1,0)) "Curr",
sum(decode(wait_time,0,0,1)) "Prev",
count(*)"Total"
FROM v$session_wait GROUP BY event ORDER BY count(*);
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的分组查询列出下列的信息:
多数的session都是空闲事件如:SQL*Net message from client, pipe get, PMON timer等。
session的cpu占用可以通过上次session的非等待事件大致算出,除此问题外:看起来多数session没有在等待什么事情(难道他们都在干活?)但其最后等待事件都是SQL*Net message from client。
列出指定ID的等待事件
select * from v$session_wait where sid=100;
应用p1,p2,p3进行等待事件的分析
v$session_wait视图的列代表的缓冲区忙等待事件如下:
P1—与等待相关的数据文件的全部文件数量。
P2—P1中的数据文件的块数量。
P3—描述等待产生原因的代码。
例:select p1 "File #", p2 "Block #", p3 "Reason Code"
from v$session_wait
where event = 'buffer busy waits';
如果以上查询的结果显示一个块在忙等待,以下的查询将显示这一块的名称和类型:
select owner, segment_name, segment_type
from dba_extents
where file_id = &P1 and &P2 between block_id and block_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扫描找到当前块,但块中的更改开始并且没有结束。
发表评论
-
数据库设计规范
2011-11-24 10:40 6871数据库设计(Database Desi ... -
Linux下用OCCI或OCI连接Oracle
2011-07-26 12:00 2899首先,去oracle官网下载C ... -
PowerDesigner快捷键
2011-03-19 00:10 1098一般快捷键F4 打开检查模型窗口,检查模型F5 如果图 ... -
oracle和sql server功能对比
2011-01-05 22:05 1810Oracle Database 10g对比SQL Server ... -
Parse CPU to Parse Elapsd%的理解
2010-11-28 18:37 6760Parse CPU to Parse Elapsd%是指sql ... -
DB2客户端连接服务端的方法(转载)
2010-07-14 22:40 911在DB2中从客户端访问服 ... -
四大数据库的比较(SQL Server、Oracle、Sybase和DB2)
2010-07-14 21:54 1527本篇引用于公司数据库 ... -
Oracle迁移到DB2常用转换
2010-07-01 13:12 1150因为项目需要,要将Oracle上的东西转移到DB2,于是收集整 ... -
输出object的DDL的方法
2010-06-23 01:07 1426最近一段时间,由于经常要通过ssh访问远程环境。所以图形工具使 ... -
oracle的license和正版使用问题
2010-06-08 01:08 19421, 正版Oracle 产品和盗版的区别 直奔主题,这是许多研 ... -
oracle opatch 工具的使用(oracle小补丁安装)(转)
2010-05-30 13:49 2251从9.2版开始,Oracle公司设计实现了个别补丁安装管理工具 ... -
mysql常用函数
2009-12-29 10:25 951一、数学函数ABS(x) ... -
SP2-0618和_SP2-0611错误处理
2009-12-27 23:48 1067AUTOTRACE是一项 SQL*Plus 功能,自动跟踪为 ... -
几分钟学会Oracle Audit
2009-12-03 15:49 21591、什么是审计 简单来讲,就是把对数据库的操作记录下来。不管 ... -
alter system switch logfile和alter system archive log current的区别
2009-12-03 12:19 1108alter system switch logfile 是强制 ... -
由HWM引出的drop,delete,truncate的异同点比较
2009-12-02 14:18 1234今天在做HWM时,说truncate表后HWM会降低,但是dr ... -
主流数据库的比较
2009-12-02 10:29 1286开发数据库应用,选择一个好的数据库是非常重要的。目前, 商品 ... -
Oracle MTS相关问题
2009-09-09 22:34 1320Oracle MTS的相关问题 一、什么是MTS MTS ... -
10g: SYSAUX 里面都有些什么东西
2009-09-04 12:38 1828Isabella says:SYSAUX 暴涨有 ... -
ORACLE的PL/SQL一
2009-08-26 17:03 1147一、什么是PL/SQL? P ...
相关推荐
【学习动态性能表(11)--v$latch$v$latch_children】主要关注Oracle数据库中的动态性能视图,尤其是关于latch这一关键概念的监控和分析。latch是一种轻量级的锁定机制,用于保护SGA(System Global Area)中的共享...
从 Oracle 等待接口 v$system_event、v$session_event 和 v$session_wait 中获得等待事件,进而找出影响性能的对象和 SQL 语句。可以使用 v$system_event 视图执行查询,查看数据库中某些常见的等待事件,然后使用 v...
- **V$SESSION_WAIT**:记录正在发生的等待事件。 - **V$SGASTAT**:提供 SGA 内存的统计信息。 - **V$WAITSTAT**:记录对自由列表的争用情况。 ##### 2.3 收集性能数据的程序:STATSPACK - **准备步骤**: - ...
### 动态性能视图详解 #### 一、概述 在Oracle数据库中,动态性能视图(Dynamic Performance Views)是一组特殊的数据结构,用于实时监控和管理数据库的运行状况。这些视图通常以`V$`开头,并由系统自动维护。它们...
(注:文档内容在此处被截断,未完整提供第六章节“Red”的详细信息) 综上所述,Oracle性能优化涉及多个层面的技术细节和最佳实践,通过对这些知识点的深入理解和应用,可以显著提升数据库系统的整体性能。
2. **分析死锁链路**:通过`v$session_wait`视图可以了解每个会话正在等待什么,帮助定位问题。 3. **优化事务处理**:减少事务持续时间,避免长时间持有锁,合理设计事务的粒度,可以有效防止死锁。 4. **设置...
第6章 hint 109 6.1 和优化器相关的hint 115 6.1.1 all_rows和first_rows(cbo) 115 6.1.2 rule hint 117 6.2 访问路径相关的hint 117 6.2.1 full hint 118 6.2.2 index hint 118 6.2.3 no_index hint 118 6.2.4 ...
第6章 hint 109 6.1 和优化器相关的hint 115 6.1.1 all_rows和first_rows(cbo) 115 6.1.2 rule hint 117 6.2 访问路径相关的hint 117 6.2.1 full hint 118 6.2.2 index hint 118 6.2.3 no_index hint 118 6.2.4 ...
此SQL语句进一步扩展了第6个SQL语句的功能,增加了时间范围限制。它只统计从2008年2月1日之后每个小时内的归档日志大小。这有助于更精确地分析特定时间段内的归档日志增长情况。 ### SQL语句8:获取特定用户会话...
Oracle数据库包含许多内置的性能监控视图,如V$SESSION、V$SESSION_WAIT、V$SQL等,它们可以直接查询以获取实时性能信息。例如,`SELECT * FROM V$SESSION`可以列出当前所有会话的信息。 **6. 第三方工具** 除...
1. **视图 `V_$LOCKED_OBJECT`**:此视图包含了所有被锁定的对象信息,包括锁定它们的会话ID(SESSION_ID)、用户名(ORACLE_USERNAME)等。 2. **视图 `OBJ$`**:这是一个系统内部视图,包含了数据库中所有对象的...
1. **检查会话等待事件**:通过查看`V$SESSION`、`V$SESSION_WAIT`、`V$SESSION_EVENT`和`V$SESS_TIME_MODEL`视图来了解会话的等待情况。 2. **检查长时间运行的查询**:使用`V$SQL`和`V$SESSION_LONGOPS`视图来查找...
- 使用V$视图监控数据库状态,如V$SESSION、V$INSTANCE、V$SESSION_WAIT等。 - AWR(Automatic Workload Repository)报告提供数据库性能的历史快照,帮助识别性能瓶颈。 - ASH(Active Session History)提供更...
- 使用`v$session`和`v$session_wait`视图分析会话等待事件。 - 查看`v$sysstat`和`v$system_event`统计信息。 - 使用`v$waitclass`视图分析等待分类。 3. **对statspack有何认识** - `STATSPACK`是一个用于...
- SQL监视:通过工具如`v$session_longops`,`gv$session`,`gv$wait_event`来识别长时间运行的SQL语句和阻塞事件。 - 系统资源使用:监控CPU、内存、I/O等资源的消耗,例如使用`V$SYSMETRIC`视图。 - 会话监控:...
- 使用 `V$SESSION_WAIT` 视图分析等待事件。 - 通过 `V$LATCH` 和 `V$LOCK` 视图来检查锁争用。 - 使用 `V$PGA_USAGE_HISTORY` 和 `V$SGA_USAGE_HISTORY` 来监控内存使用情况。 3. **对 statspack 有何认识** ...
- **使用 V$SESSION_WAIT、V$SYSTEM_EVENT 等视图检查等待事件**。 - **使用 V$SESSION、V$SESSION_LONGOPS 查看长时间运行的操作**。 - **使用 DBMS_MONITOR 包来监控系统性能**。 3. **对 statspack 有何认识*...
6. **性能监控**:通过V$视图,如V$SESSION、V$SYSTEM_EVENT和V$SESSION_WAIT,了解数据库性能瓶颈,优化SQL查询。 7. **安全性管理**:设置用户账户,分配权限,管理角色,以及使用审计功能来追踪数据库活动。 8....