首页 - 数据库 - SQL Server

使用跟踪事件10046

发布时间: 2007-04-19 05:04    作者: 未知    来源: 未知    浏览:    评论


很多时候,对数据库进行性能诊断可以使用SQL跟踪的方法,把一些信息记录在trace文件里以后分析。一般情况下我们可以通过初始化参数SQL_TRACE=TRUE来设置SQL跟踪。








 


 



我们也可以通过设置10046事件来进行SQL跟踪,并且可以设置不同的跟踪级别,比使用SQL_TRACE获得更多的信息。








 


 



Level 0   停用SQL跟踪,相当于SQL_TRACE=FALSE







Level 1   标准SQL跟踪,相当于SQL_TRACE=TRUE







Level 4   在level 1的基础上增加绑定变量的信息







Level 8   在level 1的基础上增加等待事件的信息







Level 12  在level 1的基础上增加绑定变量和等待事件的信息








 


 



10046事件不但可以跟踪用户会话(trace文件位于USER_DUMP_DEST ),也可以跟踪background进程(trace文件位于BACKGROUND_DUMP_DEST )。trace文件的大小决定于4个因素:跟踪级别,跟踪时长,会话的活动级别和MAX_DUMP_FILE_SIZE参数。








 


 



启用跟踪事件10046








 


 



1.在全局设置








 


 



修改初始化参数







EVENT = "10046 trace name context forever, level 8"








 


 



2.在当前session设置








 


 



alter session set events '10046 trace name context forever, level 8';







alter session set events '10046 trace name context off';








 


 



3.对其他用户session设置








 


 



首先获得要跟踪的session的session id和serial number







select sid,serial#,username from v$session where username='TRACE_USERNAME';








 


 




 


 



exec dbms_support.start_trace_in_session(sid => 1234,serial# => 56789,waits => true,binds => true);







exec dbms_support.stop_trace_in_session(sid => 1234,serial# => 56789);








 


 



或者







exec dbms_system.set_ev( 1234, 56789, 10046, 8, '');







exec dbms_system.set_ev( 1234, 56789, 10046, 0, '');








 


 



或者







exec dbms_monitor.session_trace_enable(session_id => 1234,serial_num => 56789,waits => true,binds => true);







exec dbms_monitor.session_trace_disable(session_id => 1234,serial_num => 56789);








 


 



也可以通过使用oradebug工具来设置10046事件








 


 



首先通过V$PROCESS获得该session的os process id。







select s.username, p.spid os_process_id, p.pid oracle_process_id







from v$session s, v$process p







where  s.paddr = p.addr and  s.username = upper('TRACE_USERNAME');








 


 



oradebug setospid 12345;







oradebug unlimit;







oradebug event 10046 trace name context forever, level 8;







oradebug event 10046 trace name context off;








 


 



获取跟踪文件








 


 



1.使用oradebug



SQL> oradebug setmypid







Statement processed.







SQL> oradebug tracefile_name







/opt/oracle/product/9.2.0/rdbms/log/uxdb_ora_9183.trc








 


 



2.设置初始参数TRACEFILE_IDENTIFIER



alter session set tracefile_identifier = 'MyTrace';







这样在生成的trace文件名中会包含有MyTrace字样







/opt/oracle/product/9.2.0/rdbms/log/uxdb_ora_9183_MyTrace.trc








 


 



3.通过SQL查询



select d.value||'/'||lower(rtrim(i.instance, chr(0)))||'_ora_'||p.spid||'.trc' trace_file_name







from 







    ( select p.spid 







      from sys.v$mystat m,sys.v$session s,sys.v$process p 







      where m.statistic# = 1 and s.sid = m.sid and p.addr = s.paddr) p,







    ( select t.instance from sys.v$thread  t,sys.v$parameter  v







      where v.name = 'thread' and (v.value = 0 or t.thread# = to_number(v.value))) i, 







    ( select value from sys.v$parameter where name = 'user_dump_dest') d;



?/rdbms/log/uxdb_ora_9183.trc







查看当前session的跟踪级别




 


SQL>Set serveroutput on



SQL> declare



     event_level number;



     begin



     dbms_system.read_ev(10046,event_level);



     dbms_output.put_line(to_char(event_level));



     end;



     /




TAG

Smile Big Smile Surprise Stick out tongue Wink Sad Tongue Tied Indifferent Crying Embarrassed Cool Angry Angel Devil [8-|] [:#] [:-*] [:^)] [<:o)] [|-)] Yes Beer Left Hug Music Star Time Snail Pizza Automobile Umbrella Computer Storm [mo] [8o|] [^o)] [+o(] [*-)] [8-)] Coffee No Drinks [Z] Right Hug Cake Broken Heart Gift Wilted Flower Movie Dog Idea Sleep Email Travel Paradise
呢称:

加粗 斜体 下划线 链接 图片 代码 邮件地址 引用 列表

最多只能输入100个字符

Tags

SQL 数据库 asp.net C# XML 控件 .NET教程 程序 事件 数据 安全 代码 Server 客户端 验证 数据库专栏 接口 文件 Oracle DataSet 函数 DataGrid 问题 .net return C#语言 JavaScript 服务 IIS 对象 语句 windows 继承 时间 web.config 设计 开发 参数 变量 解决 字符 ADO.net 环境 VB.Net语言 web 异常 工具 服务器 计算 实例 OLEDB Application VB Word WebService insert asp net 安装 记录

精华推荐

更多

精品下载

更多