SQL Trace收集方法
Current Session Level
1.Enable Sql Trace
alter session set sql_trace = true;
alter session set statistics_level = ALL;
alter session set timed_statistics = true;
alter session set max_dump_file_size = unlimited;
alter session set tracefile_identifier = ptian123;
蓝色部分,非必须执行的脚本;tracefile_identifier为trace标识符,用于快速找到sqltrace文件;
2.set TRACING LEVELS
--Setting level 12 trace to get bind values and wait states information
ALTER SESSION SET EVENTS '10046 trace name context forever, level 12';
3.Execute your sqls
4.Disable Sql Trace
alter session set events '10046 trace name context off';
ALTER SESSION SET sql_trace = false;
Other Session Level
1.Get other session SID & SERIAL#
select sid,serial#,username from v$session where username = 'xxx';
SID SERIAL#
----- ----------
11 13442
2.Enable Sql Trace
alter system set timed_statistics = true;
execute dbms_system.set_sql_trace_in_session (<SID>, <SERIAL#>, true);
3.
…
Wait for a while,capture the sql
…
4.Stop the trace
execute dbms_system.set_sql_trace_in_session(<SID>, <SERIAL#>, false);
Whole Database Level
方法一:
1.Start SQL Trace on the complete database:
alter system set sql_trace = true scope=memory;
2.Stop SQL Trace on the complete database:
alter system set sql_trace = false scope=memory;
方法二:
参数文件(pfile/spfile)中指定: SQL_TRACE = true
如何找到SQL Trace文件
查看user_dump_dest目录, 执行linux命令
ls *ptian01*
就会找到类似"SID_ora_nnnn_PTIAN01.trc"名字的trace文件。
或者执行下边这个Query,可以获取当前session Sql Trace的文件目录+名称
SELECT
u_dump.value || '/' ||
db_name.value || '_ora_' ||
v$process.spid ||
nvl2(v$process.traceid, '_' || v$process.traceid, null )
|| '.trc' "Trace File"
from
v$parameter u_dump
cross join v$parameter db_name
cross join v$process
join v$session
on v$process.addr = v$session.paddr
where
u_dump.name = 'user_dump_dest' and
db_name.name = 'db_name' and
v$session.audsid=sys_context('userenv','sessionid');
output like:
/u01/oracle/mc3yd213/db/tech_st/11.1.0/admin/mc3yd213_bej301441/diag/rdbms/mc3yd213/mc3yd213/trace/mc3yd213_ora_9593.trc
Parameters
TIMED_STATISTICS
This enables and disables the collection of timed statistics, such as CPU and elapsed times, by the SQL Trace facility, as well as the collection of various statistics in the dynamic performance tables. The default value of false disables timing. A value of
true enables timing. Enabling timing causes extra timing calls for low-level operations. This is a dynamic parameter. It is also a session parameter.
MAX_DUMP_FILE_SIZE
When the SQL Trace facility is enabled at the instance level, every call to the server produces a text line in a file in the operating system's file format. The maximum size of these files (in operating system blocks) is limited by this initialization parameter.
The default is 500. If you find that the trace output is truncated, then increase the value of this parameter before generating another trace file. This is a dynamic parameter. It is also a session parameter.
STATISTICS_LEVEL
controls all major statistics collections or advisories in the database.
BASIC: No advisories or statistics are collected.
TYPICAL: The following advisories or statistics are collected:
Buffer cache advisory
MTTR advisory
Shared Pool sizing advisory
Segment level statistics
PGA target advisory
Timed statistics
ALL: All of the preceding advisories or statistics are collected, plus the following:
Timed operating system statistics
Row source execution statistics
10046 Event Levels
10046 0 No statistics generated
10046 1 Standard trace output including parsing, executes and fetches plus more
10046 2 Same as Level 1
10046 4 Level 1 + Bind Variables
10046 8 Level 1 + Waits
10046 12 Level 1 + Bind Variables & Waits
Good Reference:http://www.jlcomp.demon.co.uk/faq/Tracing_Oracle_session.pdf
转载请注明出处:http://blog.csdn.net/pan_tian/article/details/8028297
分享到:
相关推荐
SQL Trace and TKPROF
6.sql trace分析工具--TKPROF详细讲解 7.V$SQL视图详解加几个实例 8.autotrace验证压缩表性能 9.autotrace验证消除子查询后的性能 10.基于基本的优化CBO 11.如何统计数据库数据 12.Oracle如何统计操作系统数据 13./*...
介绍:sql_trace命令会将执行的整个过程输出到一个trace文件,我通过阅读这个trace文件来了解这个sql在执行过程中Oracle究竟做了哪些事情
10046事件和sql_trace.docx
SQL TRACE原理、方法、事件查看 总结, 还包括10046,10053事件的讲解
This is simple but very useful Oracle SQL Trace Parser.
Oracle中的trace跟踪不仅可以跟踪当前的运行情况,还可以对SQl语句的执行进行跟踪
oracle系统状态trace文件分析器 当系统hang住时,或者进程间有阻塞时,你可以产生下面两种跟踪文件,一种是进程状态跟踪文件,一种是系统状态跟踪文件: process state dumps ==> 一个进程的所有对象状态,...
oracle有三种方式跟踪sql: 1、审计 2、trigger 3、利用 dbms_support 查看sql_trace 现在主要讲第三种方式: ...参见网址:https://www.cnblogs.com/shenfeng/p/oracle_sql_trace.html,步聚如下:
通过SQLPLUS中的SET TRACE 功能对Sql语句的性能进行分析 通过Toad或PL/SQL Developer对语句的性能进行和索引的使用情况进行分析 对Oracle缺省的优化不满意可以强制使用Hint,但一般不推荐使用 对Flag等只...
如何使用oracle提供的SQL_TRACE来跟踪sql的执行情况?Sql性能非常差的时候,oracle提供了SQL_TRACE来跟踪sql的执行情况。注:分析sql的方式比较多,还有根据优化器、sql执行计划来分析。SQL_TRACE能够将sql执行的过程...
2) 使用包DBMS_DEBUG和 DBMS_TRACE跟踪调试PL/SQL应用。 3) 使用包DBMS_JOB调度PL/SQL任务在指定时间自动运行。 4) 使用包UTE_FILE直接读写操作系统文件。 5) 使用Pro*C和嵌入SQL语言编制外部例程。 6) 使用动态...
sqlmonitor 1. 找出sid和serial# select sid,serial#,osuser from v$session t where t.USERNAME='USERNAME' 2. 开始sqltrace ... execute dbms_system.set_... 例: tkprof sqltrace文件.trc a.out 8. 打开a.out
Profiler是ORACLE PL/SQL 的一个调试优化跟踪方案的应, 相对sqltrace+tkprof工具调试优化跟踪方案来说, Profiler有最直观更方便的优点,因为不需要生成和读取服务器端的跟踪文件,它是将跟踪数据全部存储的数据库...
1: 运行oracle 安装软件,安装类型选自定义,选择里面的安装oracle transparent gateway 9.2.0.1.0,下面的oracle transparent gateway from microsoft sql server 9.2.0.1.0,这里可以看到,还可以选择其他的数据库...
2) 使用包DBMS_DEBUG和 DBMS_TRACE跟踪调试PL/SQL应用。 3) 使用包DBMS_JOB调度PL/SQL任务在指定时间自动运行。 4) 使用包UTE_FILE直接读写操作系统文件。 5) 使用Pro*C和嵌入SQL语言编制外部例程。 6) 使用动态...
环境:Oracle 10g + SQL SERVER 2000 数据库:Oracle:ZNDATA;SQL SERVER:ZNDB 目标:在oracle下建立一个tnsname用来访问SQL SERVER的ZNDB数据库. (1)建立ZNDB数据库在Oracle下的别名zheneng: 进入%ORACLE_HOME%\tg4...
1z0-033-11(A)(好) SQL优化 SQL优化器的使用 查询计划 计划稳定性的概要 TRACE TKTOP使用 13 1z0-033-11(B) 13 1z0-033-11(B) 发布不同oracle文件的原因 诊断表空间 表空间分区原因 检查点工作 检查点优化 调整...
本文件包括在Linux和Windows平台下查询trace文件的sql语句,很实用的sql文件,值得珍藏
2) 使用包DBMS_DEBUG和 DBMS_TRACE跟踪调试PL/SQL应用。 3) 使用包DBMS_JOB调度PL/SQL任务在指定时间自动运行。 4) 使用包UTE_FILE直接读写操作系统文件。 5) 使用Pro*C和嵌入SQL语言编制外部例程。 6) 使用动态SQL...