- 浏览: 557363 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (340)
- Spring (4)
- Hibernate (2)
- Linux (34)
- Oracle (145)
- Eclipse (1)
- UML (1)
- HTML&&JAVASCRIPT (11)
- JAVA (33)
- 设计模式 (1)
- 版本控制 (1)
- wrap框架 (3)
- IBATIS (5)
- Ruby (1)
- DWR (1)
- MINA (11)
- JBPM (2)
- 缓存技术 (4)
- 网络 (3)
- 应用服务器 (1)
- GWT (5)
- 杂谈 (2)
- ICE (4)
- XML (2)
- ArcGis (2)
- Flex (8)
- junit单元测试 (1)
- SNMP (1)
- 存储 (1)
- office (1)
- MongoDB (0)
- Greenplum (3)
- 管理点滴 (1)
- C++ (6)
- 网络入门 (3)
- Tomcat (7)
- JMX (0)
- webservice (1)
- Oracle的10046事件 (1)
- Library cache内部机制详解 (1)
- expdp通过dblink来导入 (1)
最新评论
-
yuanliangding:
有没有关于mock的更多知识。
基于mock对象和JUnit框架简化Spring Web组件单元测试 -
saup007:
ssh端口不是22,怎么搞呢?
Greenplum 学习笔记 -
springmvc-freemarker:
java开源项目源码实例下载
Apache上全部JAVA开源项目简介 -
bobbell:
哇塞,你真厉害,整理的非常全面。我是一个java barcod ...
Greenplum 学习笔记 -
wsj55133245513324:
这不是bug,你将日志级别从debug提升到INFO 就好了 ...
Spring,smppapi,apache mina, ssl快速实现安全的smpp(5)
Oracle的10046事件,可以跟踪应用程序所执行的SQL语句,并且得到其解析次数.执行次数,CPU使用时间等信息。这对我们分析、定位数据库性能问题是非常有用的。
10046event是oracle用于系统性能分析时的一个最重要的事件。当激活这个事件后,将通知oracle kernel追踪会话的相关即时信息,并写入到相应trace文件中。这些有用的信息主要包括sql是如何进行解析,绑定变量的使用情况,会话中发生的等待事件等
10046event 可分成不同的级别(level),分别追踪记录不同程度的有用信息。对于这些不同的级别,应当注意的是向下兼容的,即高一级的trace信息包含低于此级的所有信息。
10046event的追踪级别大致有:
level 1:跟踪sql语句,包括解析、执行、提取、提交和回滚等。
level 4:包括变量的详细信息
level 8:包括等待事件
level 12:包括绑定变量与等待事件
其中,level 1相当于打开了sql_trace
前提条件:
(先确保要event的会话环境符合条件)
1、必须确保timed_statistics为TRUE,这个参数可以在会话级上进行修改。
2、为了确保trace输出能够完整进行,还要调整此会话对trace文件大小的限制,一般将此限制取消,即将max_dump_file_size设置为UNLIMITED,或者设置为一个很大的阙值。
在满足了上述条件后,就可以启用10046event对会话进行后台跟踪了。
1、首先获得spid、sid、serial#,machine为连接oracle的机器名
select b.spid,a.sid,a.serial#,a.machine from v$session a,v$process b where a.paddr =b.addr and a.sid = '159'
继续往下看,就可以知道为什么找到SPID了;
2、10046事件启动
SQL>execute sys.dbms_system.set_ev(15,196,10046,1,'');
PL/SQL procedure successfully completed.
参数说明:
15:SID
196:SERIAL#
注意这里必须以sysdba登录。
或者会话级别的跟踪:
SQL> alter session set events '10046 trace name context forever ,level 12' ;
会话已更改。
3、在应用程序中执行对数据库的操作
比如性能较差的一些查询、插入、删除操作等。
4、10046事件的关闭
SQL>execute sys.dbms_system.set_ev(15,196,10046,0,'');
PL/SQL procedure successfully completed.
或者对应上面的,在会话级别关闭
SQL> alter session set events '10046 trace name context off' ;
会话已更改。
5、获得产生的跟踪文件所在的目录
SQL> select value from v$parameter where name = 'user_dump_dest';
转到该目录下可以看到生成了一个zftang_ora_596.trc文件,此处的596即SPID的值。
6、使用tkprof命令,转换TRC文件
在命令行下执行oracle的tkprof命令,将zftang_ora_596.trc转化为文本文件
如:
$ tkprof ora9i_ora_24722.trc ora9i_ora_24722.sql
此时在zftang_ora_596.sql文件中,就可以看到刚才执行应用程序时所执行的sql语句的执行次数、CPU使用时间等数据。
TRACE将消耗相当的系统资源,因此我们在使用TRACE的时候应当慎重。对于正式的系统,应当只在必要的时候进行TRACE操作,并且应当及时关闭。
********************************************************************************
count = number of times OCI procedure was executed
cpu = cpu time in seconds executing
elapsed = elapsed time in seconds executing
disk = number of physical reads of buffers from disk
query = number of buffers gotten for consistent read
current = number of buffers gotten in current mode (usually for update)
rows = number of rows processed by the fetch or execute call
********************************************************************************
update test_01 set flag1 = '测试'
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.01 0 2 0 0
Execute 1 2.35 2.64 358 1865 220043 50782
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 2.35 2.65 358 1867 220043 50782
Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 63
timed_statistics的理解
关于参数timed_statistics的一段解说
Without timed statistics, Oracle records the reason for each wait before it begins to wait, and when the wait is over, it records whether it timed out. But with timed statistics enabled, Oracle checks the time just before and after each wait, and also records the time waited. The time waited is recorded in hundredths of a second- that is, centiseconds.
本人的理解是:参数timed_statistics没有设置的话.Oracle只记录wait开始和wait结束这一段时间内的wait reason和wait结束是否是因为timed out.而设置timed_statistics=true后.Oracle就记录了wait的时间信息.有了这些时间信息可以确定等待事件在哪个时间段出现比较频繁. 请指正
在timed_statistics = false时,我们只能够知道这些等待时间的次数(records the reason for each wait ), 以及等待时间timed out的次数(records whether it timed out)
在timed_statistics = true时,我们可以知道系统在某个具体的等待事件上等待的时间(records the time waited),这样我们就可以判断具体是什么原因导致我们的系统变慢或者.
发表评论
-
expdp通过dblink来导入
2011-12-14 15:01 1789create.sql: spo create.log rem ... -
Library cache内部机制详解
2011-12-14 14:55 891Library cache内部机制详解 http://www ... -
REDO LOG MEMBER STATUS 和 REDO LOG GROUP STATUS
2011-12-14 14:51 927V$LOG 中列出的是REDO LOG GROUP STA ... -
oracle的exp/imp使用方法学习(转)
2011-08-30 08:54 964exp/imp两个命令可以说是oracle中最常用的命令了 ... -
oracle几个awr报告
2011-08-09 14:25 899工作中,碰到的数据库慢的几个awr报告 -
Oracle Profile 使用详解
2011-06-21 14:41 970一、目的: Oracle系统中的profile可以用来对 ... -
ORA-27013
2011-04-13 14:25 1515很新的一个bug,看下你的 memory_target是不是& ... -
ACLE表连接方式分析及常见用法
2011-03-23 09:14 1113摘要: 针对在数据仓库 ... -
ORACLE 外部表应用
2011-03-09 14:58 1067SQL> create or replace direc ... -
How to convert a 32-bit database to 64-bit database on Linux
2011-02-18 14:09 1214How to convert a 32-bit databas ... -
expdp impdp 数据库导入导出命令详解
2011-02-16 09:10 1954一、创建逻辑目录,该命令不会在操作系统创建真正的目录,最 ... -
Oracle手工解/锁表
2011-01-25 14:15 2505手工锁表:lock table tbl_t1 in row ... -
oracle动态性能视图
2011-01-22 10:47 860Oracle动态性能视图个人整理 -
RBO规则介绍
2011-01-17 16:45 1074•无条件使用索引•使用内置的优先级别决定访问路径•比较难以 ... -
关于排序、sort_area_size、临时表空间
2011-01-13 15:30 1118简单陈述一下:针对每 ... -
创建索引ORACLE 需要做的工作
2011-01-13 14:53 1322一. 先来看一下创建索引要做哪些操作:1. 把inde ... -
表之间的连接
2011-01-13 10:42 796Join是一种试图将两个表结合在一起的谓词,一次只能连接2 ... -
重建索引的条件
2011-01-12 16:43 953如果索引存在碎片,那每个索引数据块上的索引数据就更少,会导致我 ... -
TKPROF使用学习
2011-01-10 17:38 723Tkprof工具可用来格式化sql trace产生的文件, ... -
利用USE_INDIRECT_DATA_BUFFERS突破32位的2G内存限制
2011-01-09 09:35 1611对于绝大部分32位系统上的32位数据库,内存最大的设置都不能超 ...
相关推荐
### Oracle 10046 事件详解 #### 一、引言 Oracle 数据库作为企业级应用的重要组成部分,其性能优化与问题诊断一直是DBA(数据库管理员)关注的重点领域。Oracle 提供了一系列内置的诊断工具来帮助 DBA 识别并解决...
Oracle的10046事件跟踪是数据库性能分析的关键工具,尤其在解决应用程序性能瓶颈时。这个功能允许数据库管理员深入观察SQL语句的执行过程,获取详细的执行信息,包括解析次数、执行次数、CPU使用时间等,从而进行...
在Oracle中,事件探查器通过启用特定的跟踪事件来工作,这些事件包括但不限于10046(用于跟踪执行计划和调用堆栈)、10053(用于跟踪优化器决策过程)和10040(用于跟踪服务器进程)。通过设置这些事件,我们可以...
通过设置10046事件,可以获取到关于数据库操作的丰富信息。 3. **10053 trace事件**:这个事件用于获取SQL优化器的详细信息,包括如何选择执行计划、优化过程的细节以及成本估算等。这对于理解和优化复杂的SQL查询...
Oracle 10046事件和ASH(Active Session History)是进行性能诊断的重要工具。通过分析V$视图和AWR(Automatic Workload Repository)报告,可以找出系统瓶颈并进行相应的SQL和参数调优。此外,了解SGA组件的作用,...
- **示例**:设置10046事件 ``` SQL> EXECUTE SYS.DBMS_SYSTEM.SET_EV(sid, serial#, 10046, 12, ''); ``` ##### 4、使用`Oradebug`设置 示例: - 首先查找会话的spid ``` SQL> SELECT ADDR, PID, SPID FROM ...
【10046事件与SQL_TRACE】是Oracle数据库中用于诊断和优化SQL语句执行性能的重要工具。当面临SQL语句执行效率低下时,我们可以启用SQL_TRACE来追踪其执行流程,获取详细的执行信息,从而找出性能瓶颈。 一、启用SQL...
### Oracle的重要诊断工具events_如10046事件来进行SQL跟踪 #### 一、Oracle跟踪文件概述 在Oracle数据库管理中,为了更好地理解和解决性能问题以及系统异常,Oracle提供了多种跟踪文件,这些文件能够帮助数据库...
7. **10046事件**:10046是常用的跟踪级别,它能详细记录SQL执行的各个阶段,包括执行计划、绑定变量值等,对于性能调优非常有用。通过设置10046事件,配合10053(显示优化器决策过程)可以得到更丰富的信息。 8. *...
### Oracle的重要诊断工具events_如10046事件来进行SQL跟踪 #### 一、Oracle跟踪文件概述 在Oracle数据库管理中,跟踪文件是用于诊断问题的重要工具之一。Oracle跟踪文件主要分为三种类型: 1. **后台报警日志...
在Oracle数据库管理中,10046事件跟踪是一项重要的诊断工具,它允许管理员深入分析SQL语句的执行过程,从而定位并解决问题。本文将详细介绍如何启用和使用SQL_TRACE以及10046事件跟踪。 **SQL_TRACE的使用** SQL_...
跟踪类事件:用于Sql优化等,如10046事件可追踪SQL执行。 2. 事件设置: - 在`init.ora`文件中设置事件,适用于所有会话。 - 使用`ALTER SESSION SET EVENT`命令,只对当前会话生效。 - `ALTER SYSTEM DUMP`...
Oracle从Oracle8i开始引入了一类特殊触发器,它们不再局限于传统的DML事件,而是扩展到了系统级别,包括数据库启动触发器、DDL触发器和用户登录/注销触发器。这些触发器为数据库审计提供了新途径,特别是用户登录/...
Oracle事件跟踪器,也被称为SQL Trace或10046事件,是Oracle数据库提供的一种强大的诊断工具,用于收集关于数据库操作的详细信息。这个功能对于性能优化、问题排查以及理解数据库内部工作流程至关重要。在Oracle环境...
其中,SQL_TRACE与10046事件是最常用的追踪方式。除了这些标准方法外,Oracle还提供了ORADEBUG等其他高级追踪技术。本文将详细介绍Oracle中的追踪机制,包括追踪文件的位置、不同版本之间的差异,以及如何使用追踪...
### Oracle数据库诊断事件详解 #### 一、Oracle数据库诊断事件简介 Oracle数据库中的**诊断事件**(Diagnosable Events)是一类特殊的机制,用于改变数据库的行为、启用收集跟踪或调试信息以及启用对数据库的额外...
Oracle诊断事件是用于深入分析数据库内部行为的一组特定事件,它们允许DBA或开发人员收集关于Oracle数据库运行时的详细信息,以解决性能问题、调试错误或优化查询。以下是一些重要的Oracle诊断事件的详细说明: 1. ...
2. 使用SQL Trace的10046事件:在SQL*Plus或PL/SQL环境中,可以通过ALTER SESSION命令设置10046事件,开启不同级别的SQL追踪,例如`ALTER SESSION SET EVENTS '10046 trace name context forever, level 12'`。...
2. **SQL Trace和10046事件**:通过开启SQL Trace和10046事件,可以获取SQL语句执行的详细步骤和时间,帮助找出性能问题。 3. **DBA视图**:如V$SESSION、V$SQLAREA、V$BUFFER_CACHE等,提供实时数据库状态信息,...