千家信息网

怎样理解trace信息的收集

发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,本篇文章为大家展示了怎样理解trace信息的收集,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。每逢与遇到SQL相关性能,我们总是需要收集10046的,来查看和
千家信息网最后更新 2025年01月21日怎样理解trace信息的收集

本篇文章为大家展示了怎样理解trace信息的收集,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

每逢与遇到SQL相关性能,我们总是需要收集10046的,来查看和诊断问题。
因为10046真实的反应的SQL语句执行的时候的真实信息,解析,执行,获取的时间消耗,row source operation的具体情况。
具体等待事件,每个时间具体的时间消耗等等。希望下面的Case有一种就能帮助到您。

EVENT: 10046 "enable SQL statement tracing (including binds/waits)" (Doc ID 21154.1)
Interpreting Raw SQL_TRACE output (Doc ID 39817.1)
General SQL_TRACE / 10046 trace Gathering Examples (Doc ID 1274511.1)

==================
SQL性能常用:
所有版本
10046 on session/system
To start tracing:
Alter session/system(慎用) set events '10046 trace name context forever, level 12';
/* execute your selects to be traced */

To stop tracing
Alter session/system(慎用) set events '10046 trace name context off';


11g以上
1. event++在system级别指定sql_id,对新起的会话和当前的会话有效, 对其他已经存在的会话无效
SQL> alter system set events 'sql_trace [sql: 5qcyrymp65fak] level=12';

注释:当前事件对当前的session和新创建的session有效,对已经存在的其他session无效。
关闭 event ++:
SQL> alter system set events 'sql_trace [sql: 5qcyrymp65fak] off';

2. event ++ 指定某个process的sql_id
SQL> oradebug setospid <<<<<指定检测的会话的spid <<<<<<<<<<