等待事件(wait event)是oracle核心代码的一个命名部分,有两种类型的等待事件:空闲事件(idle
event)与非空闲事件(non-idle event),空闲事件指oracle正在等待某种工作,常见的空闲等待事件:client
message、null event、pipe get、pmon/smon timer、rdbms rpc
message及sql*net等;非空闲等待事件:buffer busy waits、db file scattered read、db
file sequential read、enqueue、free buffer waits、latch free、log file
sync、log file paralle write等。
什么是瓶颈?一旦熟悉了系统的等待事件,就能够把握问题的关键,并能够用相应的方法
去处理阻塞系统的瓶颈,一定不要随意的进行优化,否则一波不息一波又起,可以通过v$system_event获取系统总的等待情况,然后通过
v$session_event查看系统中session的等待情况,最后通过v$session_wait定位瓶颈对象。v$session_wait
是会话级的,它包含session的实时信息,最重要的是:它显示了等待事件与相应资源的更深入信息,可确定出产生瓶颈的类型及其对象。
v$session_wait
的p1、p2、p3告诉我们等待事件的具体含义,如果wait event是db file scattered
read,p1=file_id/p2=block_id/p3=blocks,然后通过dba_extents即可确定出热点对象;如果是latch
free的话,p2为闩锁号,它指向v$latch。
--求等待事件及其对应的latch
col event format a32
col name format a32
select sid,event,p1 as file_id, p2 as "block_id/latch", p3 as blocks,l.name
from v$session_wait sw,v$latch l
where event not like '%SQL%' and event not like '%rdbms%'
and event not like '%mon%' and sw.p2 = l.latch#(+);
--求等待事件及其热点对象
col owner format a18
col segment_name format a32
col segment_type format a32
select owner,segment_name,segment_type
from dba_extents
where file_id = &file_id and &block_id between block_id
and block_id + &blocks - 1;
--综合以上两条sql,同时显示latch及热点对象(速度较慢)
select sw.sid,event,l.name,de.segment_name
from v$session_wait sw,v$latch l,dba_extents de
where event not like '%SQL%' and event not like '%rdbms%'
and event not like '%mon%' and sw.p2 = l.latch#(+) and sw.p1 = de.file_id(+) and p2 between de.block_id and de.block_id + de.blocks - 1;
--如果是非空闲等待事件,通过等待会话的sid可以求出该会话在执行的sql
select sql_text
from v$sqltext_with_newlines st,v$session se
where st.address=se.sql_address and st.hashvalue=se.sql_hash_value
and se.sid =&wait_sid order by piece;
通过等待事件找出系统中消耗资源较严重的sql,是
dba进行系统诊断的手段之一。只是过程稍嫌烦琐,由于session是动态的、瞬息万变、不可捕获,当你想捕获时,该session可能已经释放,但这
种捕获很有针对性;也可以通过对v$sql或v$sqlarea进行过滤,找出存在性能问题的sql,长时间地对v$sql进行监控,并对捕获的sql进
行优化处理,可以在很大程度上解决系统的性能问题。
分享到:
相关推荐
《Oracle性能诊断艺术》这本书是Oracle数据库管理员(DBA)进阶道路上的重要参考资料。它深入探讨了如何有效地诊断和解决Oracle数据库系统的性能问题,对于优化数据库性能、保障业务稳定运行具有极高的价值。以下是对...
### Oracle Wait Interface (OWI)性能诊断与调整实践指南 #### 一、Oracle Wait Interface (OWI)概述 Oracle Wait Interface(简称OWI)是Oracle数据库管理系统中的一个重要组成部分,主要用于监控和诊断数据库...
### Oracle性能诊断详解 Oracle数据库作为企业级应用的重要组成部分,其性能的好坏直接影响着业务的顺畅运行。因此,Oracle性能诊断成为了DBA日常工作中不可或缺的一部分。本文将从多个角度出发,探讨Oracle性能...
1. **SQL跟踪简介**:SQL跟踪是一种记录SQL Server活动的方法,可以帮助诊断问题。包括但不限于: - **SQL跟踪结构**:定义跟踪文件、事件过滤器等。 - **使用SQL跟踪**:启动、停止跟踪,以及查看跟踪结果。 2. *...
等待事件的详细记录对于诊断性能瓶颈和优化SQL Server的运行效率至关重要。 在SQL Server 2016之前,获取等待信息主要通过系统视图`sys.dm_os_wait_stats`和`sys.dm_exec_requests`。前者记录了自数据库服务启动...
总的来说,数据库自动性能诊断是一个综合性的任务,涵盖了数据库设计、SQL优化、系统配置等多个方面。通过深入理解和应用相关的理论知识,结合实际的监控和诊断工具,我们可以有效地提升数据库系统的性能,为企业的...
【使用扩展SQL跟踪数据诊断性能】 在数据库性能优化领域,正确地诊断问题至关重要。本文以Oracle数据库为例,探讨如何利用扩展SQL跟踪数据来有效地找出性能瓶颈。作者Cary Millsap指出,传统的检查清单方法,如关注...
通过深入学习《Oracle 11g 性能诊断艺术》及相关文档,如`51CTO下载-Oracle11g维护培训课件.rar`和`51CTO下载-Oracle SQL优化.zip`,你将掌握一套完整的Oracle性能调优方法论,从而在面对复杂性能问题时游刃有余。...
- **性能提升**:通过优化锁机制和引入读一致性视图(RCSI),SQL Server 2005 能够更好地处理并发读取操作,减少了等待时间,提高了整体性能。 #### 三、需要修改才能完全发挥优势的功能 ##### 1. **异步请求提高了...
总的来说,数据库性能诊断涉及多个层面,从架构设计到具体SQL代码的优化,都需要DBA具备深厚的理论知识和实践经验。利用好“七种武器”,结合Oracle的调优工具,可以有效地定位和解决性能问题,确保系统的高效运行。...
在《Oracle Wait Interface性能诊断与调整实践指南》中,作者还会详细讨论如何使用Oracle的其他工具,如SQL Trace、TKPROF、AWR(Automatic Workload Repository)和ASH,以及10046、10053等诊断事件,以进一步增强...
6. **性能监控和诊断**:Oracle提供了一系列工具和视图,如V$视图、ASH、AWR、SQL Trace和10053事件,用于监控和诊断性能问题。通过对这些信息的分析,可以定位慢查询的原因,并制定相应的优化策略。 7. **CBO与RBO...
### Oracle 10g 自动性能诊断关键技术知识点 #### 一、Oracle 10g 可管理性概览 **1.1 自我管理数据库概念** - **定义**:自我管理数据库是指具备自动管理和自我诊断能力的数据库系统,能够简化数据库的日常管理...
标题中的“Oracle Wait Interface性能诊断与调整实践指南-中文版”指的是这本书是关于Oracle数据库性能优化的实用手册,尤其侧重于使用等待界面(Wait Interface)进行诊断和调整。Oracle Wait Interface(OWI)是...
- `v$session_wait` 视图提供关于会话等待时间的信息,可以用来诊断系统中的等待事件。 - `wait_time` 字段表示等待时间是否为零(0表示没有等待,非0表示有等待)。 - 此查询通过分组统计不同的等待事件,计算出...
8. **性能调优策略**:在实际应用中,用户可以通过插件提供的数据调整数据库参数,如增加缓冲池大小、调整锁等待时间等,进一步提升系统性能。 总的来说,帆软报表查询性能SQL分析插件是提升帆软报表系统性能的关键...
10. **性能监控与诊断工具**:熟悉AWR(Automatic Workload Repository)、ASH(Active Session History)和ADDM(Automatic Database Diagnostic Monitor)等Oracle内置的性能监控工具,以及如何使用它们进行问题...
Oracle Statspack 是一款强大的性能诊断和调优工具,它提供了对数据库运行情况的全面分析,帮助DBA(数据库管理员)快速定位性能问题。Statspack 的使用涵盖了从创建、收集到解读报告等多个步骤,下面将详细介绍其...
《Oracle高性能SQL调整》这本书是针对Oracle数据库性能优化的一个重要指南,主要聚焦在SQL查询的高效执行上。在Oracle数据库管理中,SQL调优是一项关键技能,它涉及到数据库的性能优化、资源利用率最大化以及系统...