在Oracle中简单的查看SQL执行计划

本文介绍如何将多个SQL语句保存至服务器文件,并通过调整数据库参数进行性能优化,进而利用trace文件诊断和分析SQL执行过程,最终通过转换trace文件为prf文件查看执行计划,实现SQL性能的有效提升。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果有多个SQL的话可以把SQL写入一个文件保存在服务器端,例如test.sql

首先连接到数据库中:

sqlplus apps/apps

然后开启trace

SQLPLUS> ALTER SYSTEM SET trace_enabled = TRUE;

然后依次执行以下命令:

1. alter session set max_dump_file_size='UNLIMITED';

2. alter session set tracefile_identifier='APPSPERF';(用于标记trace文件名称)

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

4. alter session set statistics_level = 'ALL';

5. alter session set timed_statistics=true;

6. Execute the plsql/sql(@/path_of_test.sql)

7. exec dbms_session.reset_package;

8. exit.


然后可以找到 名称中有APPSPERF的trace文件.

可以通过以下命令来确定trace文件的地址:

select u_dump.value || '/' || instance.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 instance
 cross join V$PROCESS
  join V$SESSION
    on v$process.addr = V$SESSION.paddr
 where u_dump.name = 'user_dump_dest'
   and instance.name = 'instance_name'
   and V$SESSION.audsid = sys_context('userenv', 'sessionid');


将.trc文件转为可读的.prf文件并查看执行计划:

$ tkprof orcl102_ora_3064.trc output.prf EXPLAIN=scott/tiger SYS=NO

.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值