- 浏览: 758185 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
di1984HIT:
哈哈,都不错。
Linux 环境下SQLPLUS 回退键无法使用处理方法 -
di1984HIT:
还可以查到sql
oracle中查询被锁的表并释放session -
di1984HIT:
呵呵,真的不错。
Oracle数据库经常会遇到CPU利用率很高的情况 -
李君寻:
...
解读java连接db2的四种类型 -
清风123:
dx>=this.length
js删除Array数组中的某个元素
Events事件是Oracle的重要诊断工具及问题解决办法,很多时候需要通过Events设置来屏蔽或者更改Oracle的行为;
有四种类型的Events:
Immediate dumps
Conditional dumps
Trace dumps
Events that change database behaviour
每一个事件都有一个号跟Oracle的错误信息是一样的.如10046和ORA-10046
每一个事件都有一个Level,可以是以下:
范围1到10
位标 0x01 0x02 0x04 0x08 0x10
标识 0=off,1=on
ID号 对象ID(object id),内存地址(memory address)
要注意的是,Events在每一个版本之间都有所改变.有一些存在的事件可能存在争议性或者已经不可用了,往往这些事件号会由新的事件所替代掉.也要注意在当前的版本中message file不一定可以反映出Events.
很多Events都会影响数据库的行为,一些测试Events极有可能导致数据库DOWN掉.所以,在没有Oracle Support的前提下,最好不要在PRO系统上做Events操作.DEV系统上如果要做Events最好先做个数据库的全备份.
Enabling Events(Enable事件)
Events可以在Instance一级Enabled,主要是在INIT.ORA文件中做操作:
event='event trace name context forever, level level';
(红色部分:event指事件号.level指定事件的级别)
一次可以Enable多个事件,可以用以下两种方式:
1. 用一个冒号隔开
event = "10248 trace name context forever, level 10:10249 trace name context forever, level 10"
2. 两个Events分开写
event="10248 trace name context forever, level 10"
event="10249 trace name context forever, level 10"#一些版本的Oracle,event要一样的大小写
Events也可以在Instance一级用ALTER SYSTEM命令来Enable:
ALTER SYSTEM SET EVENTS 'event trace name context forever, level level';
在Instance一级用以下Disable
ALTER SYSTEM SET EVENTS 'event trace name context off';
Events也可以在Session一级用ALTER SESSION命令来Enable:
ALTER SESSION SET EVENTS 'event trace name context forever, level level';
在Session一级用以下命令Disable:
ALTER SESSION SET EVENTS 'event trace name context off';
Events在其他的Session用ORADEBUG来Enable:
在一个Process中实现Enable:
ORADEBUG EVENT event TRACE NAME CONTEXT FOREVER, LEVEL level
在某个进程中Enable:
ORADEBUG SETORAPID 8(PID进程号)
ORADEBUG EVENT event TRACE NAME CONTEXT FOREVER, LEVEL level
以下命令Disable:
ORADEBUG EVENT event TRACE NAME CONTEXT OFF
在Session中实现Enable:
ORADEBUG SESSION_EVENT event TRACE NAME CONTEXT FOREVER, LEVEL level
在Session中实现Disable:
ORADEBUG SESSION_EVENT event TRACE NAME CONTEXT OFF
Events也可以用DBMS_SYSTEM.SETEV包来实现Enable和Disable
(在做之前要先从V$session视图中获得SID和Serial#)
用以下方式:EXECUTE DBMS_SYSTEM.SET_EV(SID,Serial#,event,level, '')
如EXECUTE dbms_system.set_ev (9,29,10046,8,'');
要Disable则将level改为0,如: EXECUTE dbms_system.set_ev (9,29,10046,0,'');
Listing All Events:(列出所有可用的Events)
大部分的Events number的范围都在10000到10999.可以用以下命令Dump出所有的信息
SET SERVEROUTPUT ON
DECLARE
err_msg VARCHAR2(120);
BEGIN
dbms_output.enable (1000000);
FOR err_num IN 10000..10999
LOOP
err_msg := SQLERRM (-err_num);
IF err_msg NOT LIKE '%Message '||err_num||' not found%' THEN
dbms_output.put_line (err_msg);
END IF;
END LOOP;
END;
/
在UNIX系统下message文件在底下目录$ORACLE_HOME/rdbms/mesg/oraus.msg
在NT系统下message文件在底下目录$ORACLE_HOME/rdbms/mesg/oraus.msg
Listing Enabled Events(列出Enabled Events)
用以下命令列出在当前Session已经Enabled Events:
SET linesize 120
SET feedback OFF
SET SERVEROUTPUT ON
DECLARE err_msg VARCHAR2(120);
BEGIN
dbms_output.enable (1000000);
FOR err_num IN 10000..10999 LOOP
err_msg := SQLERRM (-err_num);
IF err_msg NOT LIKE '%Message '||err_num||' not found%' THEN
dbms_output.put_line (err_msg);
END IF;
END LOOP;
END;
/
常用Events的参考:(红色的为最常用的而且对DBA比较有用的Events)
Event 10013 - Monitor Transaction Recovery------在Startup时跟踪事务恢复
ALTER SESSION SET EVENTS '10013 trace name context forever, level 1';
Event 10015 - Dump Undo Segment Headers----在事务恢复后做Dump回退段头信息
ALTER SESSION SET EVENTS '10015 trace name context forever, level 1';
Event 10032 - Dump Sort Statistics----Dump排序的统计信息,level 10是最详细的
ALTER SESSION SET EVENTS '10032 trace name context forever, level 10';
Event 10033 - Dump Sort Intermediate Run Statistics—level 10(不明白)
ALTER SESSION SET EVENTS '10033 trace name context forever, level 10';
Event 10045 - Trace Free List Management Operations—跟踪Freelist
ALTER SESSION SET EVENTS '10045 trace name context forever, level 1';
Event 10046 - Enable SQL Statement Trace---跟踪SQL,有执行计划,邦定变量和等待的统计信息,level 12最详细
ALTER SESSION SET EVENTS '10046 trace name context forever, level 12';
级别level参考如下图:
Level Action
1 Print SQL statements, execution plans and execution statistics
4 As level 1 plus bind variables
8 As level 1 plus wait statistics
12 As level 1 plus bind variables and wait statistics
Event 10053 - Dump Optimizer Decisions---在分析SQL语句时,Dump出优化器所做的选择,级别level 1最详细
ALTER SESSION SET EVENTS '10053 trace name context forever, level 1';
参考level:
Level Action
1 Print statistics and computations
2 Print computations only
Event 10060 - Dump Predicates---(参考http://www.juliandyke.com/)
Event 10065 - Restrict Library Cache Dump Output for State Object Dumps-(参考http://www.juliandyke.com/)
Event 10079 - Dump SQL*Net Statistics---Dump SQL*NeT的统计信息
ALTER SESSION SET EVENTS '10079 trace name context forever, level 2';
Event 10081 - Trace High Water Mark Changes—跟踪HWM的改变
ALTER SESSION SET EVENTS '10081 trace name context forever, level 1';
Event 10104 - Dump Hash Join Statistics—Dump HASH JOIN的统计信息,用level 10
ALTER SESSION SET EVENTS '10104 trace name context forever, level 10';
Event 10128 - Dump Partition Pruning Information—Dump分区表信息
ALTER SESSION SET EVENTS '10128 trace name context forever, level level';
Level参考
Level Action
0x0001 Dump pruning descriptor for each partitioned object
0x0002 Dump partition iterators
0x0004 Dump optimizer decisions about partition-wise joins
0x0008 Dump ROWID range scan pruning information
source form http://rainnyzhong.bokee.com/5273335.html
发表评论
-
ORA-01950: no privileges on tablespace "example_tbs"
2012-04-20 14:38 1365原因:用户没有此表空间分配EXTENT的权限 可以两个 ... -
Oracle 数据字典视图(V$,GV$,X$)
2010-06-10 11:11 2250常用的几个数据字典: ... -
oracle中查询被锁的表并释放session
2010-06-10 10:10 2717在开发项目中经常发现有人锁住表不放 我们可以通alter s ... -
在oracle中通过connect by prior来实现递归查询
2010-05-06 13:52 1577connect by 是结构化查询 ... -
oracle中跟用户及权限有关的系统表
2010-04-20 15:54 14451.查看所有用户: select * from dba_u ... -
oracle 物化视图
2010-04-20 09:24 2302优势 可以提 ... -
oracle 查看跟踪文件
2010-03-24 09:35 1226sql_trace 和10046 事件 首先 SQL> ... -
v$lock视图
2010-03-19 15:49 2016v$lock视图SID:Identifier for sess ... -
oracle“SQL Trace”简介
2010-03-17 17:03 1947一、概述 “SQL TRACE”是Oracle提供的用于进行 ... -
Oracle数据库提高命中率及相关优化
2010-03-15 17:06 2030本文是关于Oracle数据库调试与优化方面的文章,主要介绍Or ... -
多种方法查看Oracle SQL执行计划
2010-03-15 16:38 2250一.在线查看执行计划表如果PLAN_TABLE表不存在,执行$ ... -
Oracle数据库经常会遇到CPU利用率很高的情况
2010-03-15 16:32 16837Oracle数据库经常会遇到CPU利用率很高的情况,这种时候大 ... -
oracle hint提示优化SQL
2010-03-09 16:47 1631在优化调整数据库的SQL时候,经常会用到HINT提示.目前OR ... -
oracle问题 SP2-0613: 无法验证 PLAN_TABLE 格式或实体
2010-03-05 11:40 1852此错误表示还没有创建 plan_table 表 先创建 ... -
Oracle truncate table 与 delete tabel的区别
2010-03-04 13:56 2005一、 1.delete产生rollback,如果删除大数据 ... -
Oracle 索引的分类
2010-03-02 17:54 1735逻辑上: Single column 单列索引Concaten ... -
oracle 锁等待的诊断及排除
2010-03-02 16:38 2726在ORACLE中,为了保证数据的一致性,在对数据库中的数据进行 ... -
Red Hat Enterprise Linux 5 上安装RAC环境
2010-01-29 16:36 1185oracle 10 在 Red Hat Enterprise ... -
oracle9i 启用Partition功能
2009-11-25 17:44 14811、确定安装oracle9i企业版本 select * fr ... -
oracle性能调整—PCTFREE、PCTUSED
2009-10-30 10:45 5164一、定义 1、PCTFREE、PCT ...
相关推荐
Oracle SQL语句跟踪是数据库管理员和开发人员在优化SQL性能、定位问题或调试查询时常用的一种技术。在Oracle数据库系统中,SQL语句跟踪能够帮助我们收集关于SQL执行的详细信息,包括执行计划、资源消耗、等待事件等...
Oracle 11g Events是数据库管理系统中的一个关键特性,用于监控、调试以及诊断系统运行时的行为。这些事件可以帮助数据库管理员和开发人员深入了解数据库操作,从而优化性能、排除故障并确保系统的稳定运行。本文将...
Oracle 跟踪事件是 Oracle 数据库中的一种诊断工具,用于跟踪和分析数据库的内部结构和运行情况。该事件可以将 Oracle 各类内部结构中所包含的信息转储(dump)到跟踪文件中,以便用户能根据文件内容来解决各种故障。 ...
1. **开启跟踪**:首先,我们需要以管理员权限登录到Oracle数据库,然后使用`ALTER SYSTEM SET events`语句开启想要追踪的事件。例如,如果我们想追踪SQL执行计划,可以使用`ALTER SYSTEM SET events '10046 trace ...
Oracle SQL跟踪是数据库管理员和开发人员用来诊断性能问题、调试SQL语句以及优化数据库操作的强大工具。在Oracle数据库系统中,SQL跟踪可以帮助我们获取到应用程序与数据库交互时执行的SQL语句及其详细信息,包括...
Oracle提供了一系列命令用于将数据库内部结构中包含的信息转储到跟踪文件中,以便于用户根据文件内容解决各种故障。设置跟踪事件的主要方法有两种: 1. **在`init.ora`文件中设置事件**:这种方式会在打开数据库后...
Oracle事件跟踪器,也被称为SQL Trace或10046事件,是Oracle数据库提供的一种强大的诊断工具,用于收集关于数据库操作的详细信息。这个功能对于性能优化、问题排查以及理解数据库内部工作流程至关重要。在Oracle环境...
此外,用户还可以通过设置Oracle跟踪事件来生成这类文件,以获取更详细的诊断信息。用户跟踪文件保存在`USER_DUMP_DEST`参数指定的目录中,文件格式为`ora_xxxxx.trc`,其中`xxxxx`为创建文件的进程号或线程号。 ##...
在Oracle数据库管理中,收集SQL跟踪信息是诊断和优化系统性能的关键步骤。SQL跟踪能够帮助我们深入了解查询执行的细节,找出潜在的性能瓶颈。本文主要介绍如何在不同情况下收集Oracle进程中的SQL跟踪信息。 首先,...
Oracle数据库中的**诊断事件**(Diagnosable Events)是一类特殊的机制,用于改变数据库的行为、启用收集跟踪或调试信息以及启用对数据库的额外错误检测。这些事件是数据库管理员进行故障排除、性能调优和维护时的重要...
3. **10046 事件**:这是Oracle的一个诊断事件,通过设置`ALTER SYSTEM SET events '10046 trace name context forever, level <n>'`,可以启动更高级别的跟踪,其中 `<n>` 可以是1至12,数字越大,跟踪信息越详细,...
Oracle 数据库诊断事件是数据库管理员用来进行问题排查和性能优化的重要工具。这些事件允许改变数据库的行为,收集跟踪和调试信息,以及增强错误检测能力。在Oracle数据库中,诊断事件主要通过特定的事件号来触发,...
- **环境变量设置**:正确设置环境变量对于确保Oracle数据库的正常运行至关重要。 #### 五、基本概念与操作 - **Schema**:每个数据库用户都有自己的schema,包含了表、视图等对象。 - **Tablespaces**:用来组织...
在Oracle数据库中,SQL跟踪是通过设置事件(events)来记录数据库执行的详细信息,包括SQL语句的执行计划、执行时间、资源消耗等。这对于诊断性能问题、定位错误以及优化SQL代码非常有帮助。这款工具就是针对这个...
### Oracle 数据库性能优化 #### 一、优化工具篇 **1.1 学习的建议** 对于希望深入了解Oracle数据库性能优化的专业人士来说,首先应该掌握Oracle的基本操作和原理,这是进行任何性能优化工作的基础。此外,建议...
Oracle的TKPROF工具是数据库管理员和开发人员用于分析跟踪文件的强大工具,它能帮助优化SQL语句,提高数据库性能。下面将详细介绍TKPROF的使用方法和关键配置。 首先,要启用TKPROF,需要设置一些参数。`TIMED_...
Oracle的10053事件是Oracle数据库管理系统中的一种诊断工具,它允许DBA(数据库管理员)方便地转储数据库的各类结构并追踪特定事件。Oracle提供了多种诊断工具,但事件(Event)因其便捷性和实用性而备受青睐。下面...
SQL跟踪工具是数据库管理员和开发人员在Oracle数据库环境中进行性能优化和问题排查的重要辅助手段。这类工具能够记录和分析SQL语句的执行过程,提供详细的信息,帮助我们理解数据库操作的内部工作原理,从而找出可能...
在数据库open过程中,可以通过设置跟踪事件(trace event)来获取更详细的信息,这对于诊断问题和进行非常规恢复很有帮助。例如: - 使用`alter session set events '10046 trace name context forever, level 12';...