打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Oracle 性能分析与诊断|跟踪诊断&优化SQL 语句

SQL 语句的执行效率对于数据库性能的影响非常重大,在性能测试过程中,需要查找和定位可能存在性能瓶颈的SQL 语句。

PL/SQL Developer 是一个Oracle 的PL/SQL 开发工具,同时具备Oracle 的一些管理功能,可利用它来跟踪客户端向Oracle 服务器提交的所有SQL 语句,方法是选择Session→SQL Trace命令,如图8.19 所示。

也可以指定跟踪某个Session 的SQL 语句,如图8.20 所示。

如果不用PL/SQL Developer 这类工具,也可以通过修改Oracle 全局参数sql_trace,来产生Trace 文件,之后再分析Trace 文件来分析提交到Oracle 的SQL 语句。如果想针对某个Session进行SQL 语句的跟踪,则可以采用以下办法(以下操作需要在SYS 用户下进行)。

(1)首先使用以下语句从Oracle 的v$session 表查出所有跟Oracle 连接的客户端程序的进程:

select SID, SERIAL#, USERNAME,OSUSER,MACHINE,TERMINAL,PROGRAM from v$session

(2)然后利用DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION 包来跟踪特定的进程向Oracle 提交的SQL 语句。

例如,下面语句为SID 为13,SERIAL#为96 的进程执行SQL 语句的跟踪功能:

execute dbms_system.set_sql_trace_in_session(13,96,TRUE);

(3)如果要停止跟踪,则提交以下语句:

execute dbms_system.set_sql_trace_in_session(13,96,FALSE);

然后在利用Oracle 的tkprof 工具对记录下来的SQL 跟踪文件进行分析,如图8.21 所示。

另外,也可以利用前面讲过的Spotlight 这个工具进行SQL 跟踪,在Spotlight 中跟踪指定Session 的SQL 语句,并查看执行计划,如图8.22 所示。

还可以利用SQL Tuning 的调优建议功能对SQL 语句进行分析,SQL Tunning 将自动查找更优的可替代SQL 语句,如图8.23 所示。

图8.23 中,SQL Tunning 把原来使用Having 进行条件过滤的SQL 语句改写为使用Where进行条件过滤,这样的SQL 语句执行效率更高。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
史上最强的FQA for ORACLE(备份与恢复部分)
获取、阅读执行计划
Oracle 10g实用程序trcsess:跟踪sql语句 - Oracle - IT学习...
Oracle 并行处理
oracle跟踪常用内部事件号
for update造成的Oracle锁表与解锁
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服