oracle查看建表语句sql_Oracle 性能分析与诊断|跟踪诊断&优化SQL 语句

cbe3d53196c8be94b968a041e30da139.png

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

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

9e9d27f393dfaaffa42fe238a082f58a.png

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

8a82e9f9114fd212449067dadc04da3e.png

如果不用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 所示。

68c57675a4007d357cac2c4d3767b954.png

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

4ce03495fa5055a550bd3c01cfce55d4.png

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

8096e34b8363437dcab755438f3fbaad.png

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值