ITPub博客

首页 > 数据库 > Oracle > 数据库教程FGMT12‑Oracle性能诊断与综合分析

数据库教程FGMT12‑Oracle性能诊断与综合分析

原创 Oracle 作者:mfkqwyc86 时间:2026-09-16 10:54:51 0 删除 编辑

数据库教程FGMT12‑Oracle性能诊断与综合分析

## 前言

在Oracle数据库调优工作当中,AWR、ASH属于实例聚合统计工具,适合做整体数据库负载分析。但遇到单条SQL解析异常、优化器选错执行计划、绑定变量带来性能抖动、会话内部等待细节无法被聚合报告完整呈现的疑难故障时,就需要深度跟踪诊断工具。SQL_TRACE、10046事件、10053优化器跟踪、Oradebug、TKPROF、SQL Monitor、SQLTXPLAIN、SPA、Database Replay共同组成Oracle深度诊断工具集,用来捕获SQL完整解析流程、绑定变量、等待事件、CBO成本计算内部逻辑,完成疑难性能问题定位。风哥教程本文围绕跟踪文件获取、各类跟踪事件底层原理、工具实操、复杂故障完整诊断流程展开完整讲解。风哥 itpux‑com


本套风哥教程面向DBA、数据库运维工程师、后端开发人员,全部实验标准化环境配置:主机名称**fgedu‑net‑cn**,硬件规格64G物理内存、8颗CPU;数据库实例名`fgedudb`,数据库名`fgedudb`,测试业务用户名`fgedu`,文件根目录统一为`/fgedudb`,整套实验基于Oracle19c企业版完成。风哥教程本文分为前言大纲介绍、核心理论知识、实战操作演练、总结四大模块;实战章节包含大量可直接复制运行SQL脚本、操作系统操作步骤,读者可以在测试环境完整复现全部实验现象,掌握疑难SQL故障深度定位全套手段。网上搜索风哥教程可以学习全套数据库教程


### 内容大纲

1. Oracle深度性能诊断工具整体架构与适用场景区分

2. Trace跟踪文件存储位置、关键初始化参数,跟踪文件各类获取方法

3. sql_trace基础跟踪机制,10046事件不同级别跟踪原理与风险说明

4. TKPROF格式化原始trc跟踪文件,跟踪报告指标解读

5. Oradebug工具使用,对外部业务会话开启与关闭跟踪

6. 10053优化器跟踪事件,理解CBO成本计算内部逻辑

7. SQL Monitor实时SQL监控原理、视图查询与报告生成实操

8. SQL Tuning Health Check(SQLHC)轻量级健康检查脚本使用

9. SQLTXPLAIN(SQLT)工具安装部署,单SQL综合诊断使用方法

10. SPA(SQL Performance Analyzer)SQL性能分析器原理与完整工作流程

11. Oracle Database Replay数据库负载重演,捕获、预处理、重放、对比报告

12. 各类工具生产环境风险注意事项,疑难故障标准诊断工作流程


## 一、核心理论知识

本章节为本套风哥教程理论基础,只有理解各个跟踪诊断工具底层原理,才能够根据故障场景选择合适工具,规避跟踪带来额外性能开销。风哥教程 113257174


### 1.1 Oracle深度诊断工具整体介绍

AWR、ASH属于聚合采样类工具,做实例、会话级别统计汇总;Trace类工具属于完整捕获工具,会记录每一次解析、执行、fetch获取行、等待事件、绑定变量详细信息。不同工具能力与适用场景有明确边界:

1. **sql_trace**:基础SQL跟踪,记录解析、执行、fetch阶段CPU、IO统计;粒度较为基础。

2. **10046事件**:增强版sql_trace,可以控制是否捕获绑定变量、等待事件,划分多个级别,是生产环境最常用SQL跟踪手段。

3. **TKPROF**:操作系统工具,对原始二进制trc跟踪文件做格式化,输出可读性文本报告。原始trc文件原始内容杂乱,必须经过tkprof格式化才便于分析。

4. **Oradebug**:Oracle内部调试工具,可以附着到任意数据库进程,开启/关闭跟踪,适合业务会话无法修改应用代码的场景。

5. **10053事件**:**CBO优化器专属跟踪**,记录优化器计算成本、候选计划筛选、统计信息读取全部内部逻辑;专门用来排查统计信息正常,但优化器依然选错执行计划的疑难场景。10053仅在SQL硬解析阶段产生输出,软解析不会生成跟踪输出。

6. **SQL Monitor**:实时SQL监控,长耗时SQL会被自动监控,不需要手动开启跟踪,以视图和报告形式展示SQL运行时每一步真实行源统计。

7. **SQL Tuning Health Check(SQLHC)**:轻量级无安装脚本,快速输出单条SQL的健康检查报告,不会在数据库创建对象。

8. **SQLTXPLAIN(SQLT)**:Oracle官方免费综合诊断工具,安装独立schema;输入sql_id,自动收集表、索引、统计、直方图、AWR历史、执行计划、绑定变量、跟踪信息,输出html综合报告,极大降低单SQL排查工作量。

9. **SPA(SQL Performance Analyzer)**:Real Application Testing组件工具;捕获业务SQL集合,在变更(升级、打补丁、参数修改)前后分别执行,对比每条SQL的性能变化,识别性能退化SQL。

10. **Database Replay数据库负载重演**:捕获生产数据库全部外部业务负载,导出负载文件,在测试库完整重放真实业务流量,用来验证升级、参数、存储变更对整体数据库的真实影响。


>许可提示:SQL Monitor依赖Diagnostics Pack;SPA、Database Replay属于Real Application Testing授权组件,商用生产使用需要对应许可;sql_trace、10046、10053、tkprof、SQLTXPLAIN、SQLHC无额外许可约束。网上搜索风哥教程可以学习全套数据库教程


### 1.2 Trace跟踪文件存储与关键参数

Oracle11g之后使用ADR自动诊断仓库统一管理trace文件。关键初始化参数:

1. `DIAGNOSTIC_DEST`:ADR根目录,本实验环境配置为`/fgedudb/diag`,trace文件存放路径 `DIAGNOSTIC_DEST/diag/rdbms/fgedudb/fgedudb/trace`。

2. `TIMED_STATISTICS`:必须设置TRUE,跟踪才会采集CPU、等待时间;FALSE情况下trace时间统计全部无效。

3. `MAX_DUMP_FILE_SIZE`:trace文件最大大小,繁忙会话跟踪会生成巨大trc文件,生产一般设置unlimited。

4. `TRACEFILE_IDENTIFIER`:给trace文件增加自定义标识字符串,方便海量trace文件快速定位目标跟踪文件。


>风险:开启跟踪会带来额外CPU、IO开销,生产环境禁止对全实例长时间开启跟踪;尽量只针对故障会话、故障SQL开启,排查完成立刻关闭跟踪。**严禁alter system全局设置10046事件,会造成实例所有会话开启跟踪,数据库性能严重下降,仅允许会话级别、指定进程级别开启**。


### 1.3 10046事件级别定义

10046事件是sql_trace增强,不同级别控制捕获内容:

- Level 1:等价普通sql_trace,记录解析、执行、fetch统计;不包含绑定、等待事件。

- Level 4:level1 + 捕获绑定变量bind values。

- Level 8:level1 + 捕获全部等待事件。

- Level 12:level1+4+8,**完整跟踪,包含统计、绑定变量、等待事件**,绝大多数故障排查使用level12。

- Level 16:增加行源执行统计,用于分析多次执行的计划突变场景。


### 1.4 10053优化器跟踪事件

10053不跟踪SQL执行过程,**只跟踪CBO优化器解析SQL、计算各个候选计划成本的内部过程**。当出现统计信息正常,但优化器依然生成错误执行计划,就需要10053跟踪,查看优化器读取了哪些统计、如何计算各个访问路径与连接方式成本,为什么丢弃了更优计划。10053仅在SQL硬解析阶段产生内容,软解析不会生成跟踪输出。风哥数据库教程 itpux‑com


### 1.5 SQL Monitor原理

当SQL执行时间超过5秒,会被SQL Monitor自动监控;也可以手工强制开启监控。`v$sql_monitor`、`v$sql_plan_monitor`视图实时记录SQL每一步行源的行数、CPU、逻辑读、物理读、内存临时段使用。不需要开启trace,几乎无额外开销,适合长时间运行大SQL实时观察执行进度。


### 1.6 SQLTXPLAIN与SQLHC原理

SQL Tuning Health Check(SQLHC)为轻量级脚本,不需要安装schema,直接运行脚本输入sql_id即可输出报告,适合快速诊断。

SQLTXPLAIN是Oracle支持部门常用免费工具,安装独立schema;输入sql_id,自动收集:对象定义、统计信息、直方图、当前执行计划、历史AWR执行计划、绑定变量、10046跟踪、10053跟踪,打包输出html报告,一站式完成单SQL全方位信息采集,省去DBA多次执行各类查询。


### 1.7 SPA与Database Replay工作流程

#### SPA(SQL性能分析器)

1. 捕获基准负载SQL集合,可以来自AWR、STS、trace文件。

2. 在原环境执行,保存基准性能数据。

3. 执行数据库变更(参数、补丁、升级)。

4. 在变更后环境再次执行同一批SQL。

5. 对比前后两次执行,输出哪些SQL性能退化,哪些得到提升。


#### Database Replay数据库重演

完整四大阶段:捕获负载 → 预处理负载文件 → 在测试库重放负载 → 重放报告对比。捕获阶段记录所有客户端提交给数据库的调用;重放阶段在测试库原样复现业务流量,用于验证数据库重大变更整体风险。


## 二、实战操作演练

本套风哥教程全部实战操作,操作主机`fgedu‑net‑cn`,数据库`fgedudb`,业务用户`fgedu`,目录`/fgedudb`,硬件规格64G内存8CPU。

>环境说明:操作系统登录oracle用户,设置环境变量指向`fgedudb`实例;跟踪、调试类操作大部分需要sysdba权限。trace文件输出路径为`/fgedudb/diag/rdbms/fgedudb/fgedudb/trace`。


### 2.1 操作系统与数据库环境校验

#### 2.1.1操作系统层面检查(主机fgedu‑net‑cn)

```bash

#确认主机名称

hostname

#确认ORACLE_HOME路径全部指向/fgedudb

echo $ORACLE_HOME

#查看内存硬件,确认64G内存

free -h

#查看CPU,确认8CPU

lscpu

#确认trace目录存在

ls -ld /fgedudb/diag/rdbms/fgedudb/fgedudb/trace

```

校验输出:hostname输出`fgedu‑net‑cn`,总内存64G,逻辑CPU数量8,trace目录权限oracle用户可读写。


#### 2.1.2 数据库关键初始化参数确认(64G内存8CPU规格)

登录`sqlplus / as sysdba`查看关键参数

```sql

show parameter statistics_level;

show parameter timed_statistics;

show parameter max_dump_file_size;

show parameter diagnostic_dest;

show parameter memory_target;

show parameter sga_target;

show parameter pga_aggregate_target;

```

适配64G内存主机spfile标准配置

```sql

alter system set memory_max_target=48G scope=spfile;

alter system set memory_target=48G scope=spfile;

alter system set statistics_level=TYPICAL scope=spfile;

alter system set timed_statistics=TRUE scope=both;

alter system set max_dump_file_size=unlimited scope=both;

alter system set diagnostic_dest='/fgedudb/diag' scope=spfile;

```

>`timed_statistics=TRUE`是所有跟踪采集时间指标的前提;max_dump_file_size设置unlimited避免大跟踪文件被截断。重启实例使spfile修改生效。


#### 2.1.3 用户权限准备

```sql

create user fgedu identified by fgedudb default tablespace users temporary tablespace temp;

grant connect,resource to fgedu;

grant select_catalog_role to fgedu;

grant advisor to fgedu;

grant execute on dbms_monitor to fgedu;

grant execute on dbms_sqldiag to fgedu;

grant execute on dbms_sqlpa to fgedu;

grant execute on dbms_workload_capture to fgedu;

grant execute on dbms_workload_replay to fgedu;

```


### 2.2 Trace跟踪文件定位、sql_trace基础跟踪实操

#### 2.2.1 获取当前会话trace文件名

```sql

alter session set tracefile_identifier='fgedu_test_trace';

select value from v$diag_info where name='Default Trace File';

```

返回的完整路径即为trc原始跟踪文件路径,位于`/fgedudb/diag/rdbms/fgedudb/fgedudb/trace`目录下。网上搜索风哥教程可以学习全套数据库教程


#### 2.2.2 会话级别开启基础sql_trace

```sql

conn fgedu/fgedudb@fgedudb

alter session set sql_trace=true;

--执行待诊断业务SQL

select count(*) from t_big;

alter session set sql_trace=false;

```

>sql_trace等价10046 level1,只记录解析执行统计,**不会捕获绑定变量、等待事件**,故障排查优先使用10046 level12。


### 2.3 10046事件跟踪三种实现方式实操

#### 方式一:当前会话直接开启10046(可控会话,最简单)

```sql

conn fgedu/fgedudb@fgedudb

alter session set tracefile_identifier='fgedu_10046_level12';

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

--复现故障SQL

select * from t_big where code=100;

--关闭跟踪

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

```


#### 方式二:DBMS_MONITOR包跟踪指定SID,SERIAL#(已知会话信息)

首先查询目标业务会话sid与serial#

```sql

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

```

传入查询得到的sid、serial_num

```sql

conn / as sysdba

exec dbms_monitor.session_trace_enable(session_id=>142,serial_num=>234,waits=>true,binds=>true);

--通知业务复现故障SQL

exec dbms_monitor.session_trace_disable(session_id=>142,serial_num=>234);

```


#### 方式三:Oradebug附着操作系统进程跟踪外部会话(应用无法修改会话)

1. 查询目标会话操作系统spid

```sql

select s.sid,s.serial#,p.spid from v$session s join v$process p on s.paddr=p.addr where s.username='FGEDU';

```

拿到spid,登录sqlplus / as sysdba执行oradebug

```sql

oradebug setospid 27891

oradebug event 10046 trace name context forever,level 12;

--业务侧复现问题SQL

oradebug event 10046 trace name context off;

oradebug tracefile_name;

```

>oradebug tracefile_name直接打印完整trc文件路径,省去操作系统查找文件步骤。


### 2.4 TKPROF工具格式化trc跟踪文件实操

原始`.trc`文件可读性极差,需要使用操作系统tkprof工具格式化,主机`fgedu‑net‑cn`oracle用户下执行bash命令。

```bash

#进入trace目录

cd /fgedudb/diag/rdbms/fgedudb/fgedudb/trace

#tkprof格式化,sys=no过滤系统递归SQL,waits=yes输出等待事件

tkprof fgedudb_ora_27891_fgedu_10046_level12.trc fgedu_10046_report.txt \

sort=prsela,exeela,fchela sys=no waits=yes aggregate=yes explain=fgedu/fgedudb

```

参数说明:

- sort=prsela,exeela,fchela:按照解析、执行、获取行消耗时间降序排序,慢SQL排在报告最上方;

- sys=no:屏蔽SYS递归内部SQL,减少报告干扰信息;

- waits=yes:汇总所有等待事件统计;

- explain:连接数据库,为每条SQL生成执行计划写入报告。


>注意:tkprof**无法处理10053优化器跟踪文件**,10053只能直接阅读原始trc文本。风哥数据库教程 itpux‑com


### 2.5 10053 CBO优化器跟踪实操(排查选错执行计划)

>注意:10053只在**硬解析**时产生输出;如果SQL已经存在于共享池,需要刷新共享池或者增加SQL注释触发硬解析。

```sql

conn fgedu/fgedudb@fgedudb

alter session set tracefile_identifier='fgedu_10053_trace';

alter session set events '10053 trace name context forever, level 1';

--增加注释,强制硬解析

select /*+ test_10053 */ * from t_big where code=100;

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

--获取trace完整路径

select value from v$diag_info where name='Default Trace File';

```

拿到trc文件,操作系统直接vi查看,tkprof不能解析10053内容。报告重点看:优化器读取的表统计、各个访问路径cost计算值、为什么抛弃候选访问路径。


### 2.6 SQL Monitor实时SQL监控实操

SQL Monitor适合长时间运行SQL,不需要开启trace,几乎无额外开销。

#### 2.6.1 查询v$sql_monitor视图实时监控信息

```sql

set linesize 200 pagesize 100

col sql_text format a80

select sql_id,sql_text,status,elapsed_time,cpu_time,buffer_gets,disk_reads

from v$sql_monitor

where status<>'DONE';

```


#### 2.6.2 生成SQL Monitor html报告

```sql

set long 1000000

set longchunksize 1000000

set pagesize 0

set linesize 200

select dbms_sqltune.report_sql_monitor(sql_id=>'&input_sql_id',type=>'HTML') from dual;

```

输出html内容复制保存为本地html文件,可以浏览器打开,直观看到每一步行源真实行数、IO、CPU消耗。


### 2.7 SQLHC(SQL Tuning Health Check)轻量级诊断脚本实操

SQLHC是Oracle支持免费脚本,不需要安装schema,下载sqlhc.sql上传主机`fgedu‑net‑cn`的`/fgedudb/tmp`目录。

```bash

#上传脚本到/fgedudb/tmp

cd /fgedudb/tmp

```

sysdba登录执行脚本,参数T代表拥有Diagnostics Pack许可,传入待分析sql_id。

```sql

conn / as sysdba

@sqlhc.sql T &sql_id

```

脚本执行完毕,在当前目录生成zip压缩包,解压后包含html、txt全套诊断信息:表定义、统计、直方图、执行计划、AWR历史信息。网上搜索风哥教程可以学习全套数据库教程


### 2.8 SQLTXPLAIN(SQLT)综合诊断工具部署实操

SQLT功能比SQLHC更加完整,需要安装独立schema。将sqlt安装包上传至`/fgedudb/tmp`。

```bash

cd /fgedudb/tmp

unzip sqlt.zip

```

sysdba执行安装脚本,创建sqlt用户。

```sql

conn / as sysdba

@sqlt/install/sqltinstall.sql

```

安装完成之后,针对目标sql_id执行诊断:

```sql

conn sqlt/sqlt

@sqlt/run/sqlt.sql &sql_id

```

执行完毕生成zip报告,包含10046、10053跟踪输出、各类字典视图查询结果,适合提交Oracle支持做疑难SQL分析。


### 2.9 SPA(SQL Performance Analyzer)SQL性能分析器实操

>SPA需要Real Application Testing许可;适用场景:数据库升级、参数变更、索引变更前,评估业务SQL性能退化风险。

1. 第一步:创建SQL调优集STS,从AWR加载SQL。

```sql

conn / as sysdba

declare

  v_sts_name varchar2(60):='FGEDU_STS';

begin

  dbms_sqltune.create_sqlset(sqlset_name=>v_sts_name,description=>'fgedu业务SQL集合');

  dbms_sqltune.load_sqlset(

    sqlset_name=>v_sts_name,

    populate_cursor=>cursor(select * from table(dbms_sqltune.select_workload_repository(begin_snap=>100,end_snap=>120))));

end;

/

```

2. 创建SPA分析任务

```sql

declare

  v_task_name varchar2(60):='FGEDU_SPA_TASK';

begin

  dbms_sqlpa.drop_analysis_task(task_name=>v_task_name);

  :v_task_name:=dbms_sqlpa.create_analysis_task(sqlset_name=>'FGEDU_STS',task_name=>v_task_name);

end;

/

```

3. 执行变更前基准测试

```sql

begin

dbms_sqlpa.execute_analysis_task(

task_name=>'FGEDU_SPA_TASK',

execution_type=>'TEST EXECUTE',

execution_name=>'BEFORE_CHANGE');

end;

/

```

4. 执行数据库变更(修改参数、建索引、打补丁等操作)

5. 变更之后再次执行测试

```sql

begin

dbms_sqlpa.execute_analysis_task(

task_name=>'FGEDU_SPA_TASK',

execution_type=>'TEST EXECUTE',

execution_name=>'AFTER_CHANGE');

end;

/

```

6. 执行对比分析,生成报告

```sql

begin

dbms_sqlpa.execute_analysis_task(

task_name=>'FGEDU_SPA_TASK',

execution_type=>'COMPARE PERFORMANCE',

execution_name=>'COMPARE_AFTER');

end;

/


set long 1000000

select dbms_sqlpa.report_analysis_task(task_name=>'FGEDU_SPA_TASK',type=>'HTML') from dual;

```

报告中可以直接看到哪些SQL性能退化,哪些得到优化。


### 2.10 Database Replay数据库负载重演完整实操

>Database Replay属于Real Application Testing组件,适合完整回放数据库业务负载,验证重大变更整体影响。

1. 创建操作系统目录,创建database directory对象

```bash

mkdir -p /fgedudb/replay_capture

chown oracle:oinstall /fgedudb/replay_capture

```

```sql

conn / as sysdba

create directory replay_cap_dir as '/fgedudb/replay_capture';

```

2. 开启负载捕获

```sql

begin

dbms_workload_capture.start_capture(

name=>'FGEDU_CAPTURE_01',

dir=>'REPLAY_CAP_DIR',

duration=>3600); --捕获时长,单位秒

end;

/

```

>业务在捕获时间段正常运行,模拟真实业务流量;时间到达自动结束捕获,也可以手动结束:

```sql

exec dbms_workload_capture.finish_capture();

```

3. 预处理捕获文件,将捕获数据转换为重放可用格式

```sql

begin

dbms_workload_replay.process_capture(capture_name=>'FGEDU_CAPTURE_01',dir=>'REPLAY_CAP_DIR');

end;

/

```

4. 在测试库,初始化重放任务,启动wrc客户端程序(操作系统oracle用户执行)

```bash

cd /fgedudb/replay_capture

wrc system/******@fgedudb mode=replay replaydir=/fgedudb/replay_capture

```

5. 数据库端启动重放

```sql

begin

dbms_workload_replay.initialize_replay(replay_name=>'FGEDU_REPLAY_01',replay_dir=>'REPLAY_CAP_DIR');

dbms_workload_replay.prepare_replay(synchronization=>TRUE);

dbms_workload_replay.start_replay();

end;

/

```

6. 重放结束之后,生成重放对比报告,对比捕获阶段与重放阶段性能差异。


### 2.11 疑难SQL故障标准诊断完整工作流程

1. 业务反馈SQL性能异常,优先抓取sql_id,查看AWR、ASH,确认是实例整体瓶颈还是单SQL问题。

2. 如果是单SQL计划异常:优先查看`dbms_xplan.display_cursor`真实执行计划,对比E‑ROWS预估行数与A‑ROWS实际行数,判断统计信息是否失真。

3. 统计信息无明显异常,但是计划依然错误:

    - 会话可控:使用**10046 level12跟踪**拿到绑定变量、等待事件;

    - 会话不可控:使用dbms_monitor或者oradebug附着进程开启跟踪;

    - 硬解析计划异常:开启10053跟踪,分析CBO优化器内部成本计算。

4. 拿到trc文件,tkprof格式化10046跟踪,分析主要等待、逻辑读、CPU消耗点。

5. 使用SQLHC/SQLTXPLAIN一站式收集对象、统计、历史执行计划信息。

6. 若是数据库变更升级前风险评估,使用SPA做SQL集合对比;若是全实例业务验证,使用Database Replay负载重演。

7. **生产硬性约束:所有跟踪操作完成,务必确认关闭跟踪,禁止残留开启跟踪,避免持续消耗CPU与磁盘IO;所有操作保留回退步骤。**


## 三、风哥针对本文总结

本套风哥教程完整覆盖Oracle深度性能诊断全套工具,从Trace底层原理、10046/10053事件原理,tkprof格式化,oradebug进程附着跟踪,到SQL Monitor、SQLHC、SQLT、SPA、Database Replay整套实操命令,同时明确各个工具许可边界、生产风险约束。


1. 区分工具定位:AWR/ASH做聚合采样;10046用于捕获SQL运行阶段完整等待、绑定变量;10053**只用于硬解析CBO优化器内部问题排查,不会跟踪SQL执行阶段**;tkprof仅能格式化10046的trc,不能处理10053跟踪文件。

2. 生产环境红线:禁止`alter system`全局开启10046事件,会造成实例所有会话开启跟踪,引发严重性能故障;跟踪结束必须确认已经关闭跟踪事件,避免trace文件持续暴涨占满磁盘。

3. oradebug属于未公开调试工具,优先使用`dbms_monitor`包;oradebug仅用于无法获取会话代码修改权限、后台进程跟踪场景。

4. SQLHC无安装依赖,适合快速应急诊断;SQLTXPLAIN需要安装schema,适合深度疑难问题;SQL Monitor几乎无开销,优先用来监控长时间运行SQL。

5. SPA、Database Replay依赖Real Application Testing许可,商用生产环境必须确认许可合规,不可随意上线使用;仅用于测试库做变更风险评估。

6. 10053跟踪必须触发SQL硬解析才会产生内容,如果SQL已经缓存在共享池,需要增加注释或者刷新共享池,否则跟踪文件几乎没有有效输出。

7. 故障排查遵循由浅入深:优先AWR/ASH/真实执行计划,其次使用SQLHC快速采集;确认需要再开启10046/10053跟踪;不要一上来直接开跟踪,避免不必要的系统开销。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9664900/viewspace-3182502/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
风哥Oracle,MySQL,PostgreSQL,Linux,大数据,国产数据库,中间件等教程

注册时间:2010-10-26

  • 博文量
    68
  • 访问量
    406001