Oracle SQLT 诊断SQL语句性能(3)

4.  SQLT的主要方法:
XTRACT, XECUTE, XTRXEC, XTRSBY, XPLAIN, XPREXT and XPREXC 
A.   XTRACT方法,如果知道SQL_ID或HASH_VALUE, 那么可以使用此方法。 sql_id可以从AWR得到,hash_value可以在SQL Trace中 hv= 中看到。否则使用XECUTE 。如果SQL还在内存中,或者已被AWR捕获,那么XPREXT会找到它并提供诊断文件,否则XPREXT报错。
# cd sqlt/run
# sqlplus apps
SQL> START sqltxtract.sql [SQL_ID]|[HASH_VALUE] [sqltxplain_password]
SQL> START sqltxtract.sql 0w6uydn50g8cx sqltxplain_password
SQL> START sqltxtract.sql 2524255098 sqltxplain_password
一些重要的性能统计信息,比如执行计划操作的实际的行数等。


B.   XECUTE方法比XTRACT方法提供更加详细的信息, 它执行被解析的SQL, 提供一套诊断文件,缺点是SQL执行时间如果很长,那么这个方法也需要很长时间。 所以如果一个SQL执行时间小于1小时,才考虑使用此方法。 否则使用XTRACT 。
   需要创建一个包含SQL TEXT的文本文件,如果Sql有绑定变量,文件中必须包含绑定变量申明和赋值,可以参考sqlt/input/sample/script1.sql 。
# cd sqlt
# sqlplus apps
SQL> START [path]sqltxecute.sql [path]scriptname [sqltxplain_password]
SQL> START run/sqltxecute.sql input/sample/script1.sql sqltxplain_password

C.  XTRXEC 方法联合了XTRACT和XECUTE的特性
实际上,XTRXEC连续执行两种方式(XTRACT, XECUTE), 其中XTRACT生成一个脚本,包含有绑定变量及赋值的SQL, XECUTE随后执行这个脚本。
# cd sqlt/run
# sqlplus apps
SQL> START sqltxtrxec.sql [SQL_ID]|[HASH_VALUE] [sqltxplain_password]
SQL> START sqltxtrxec.sql 0w6uydn50g8cx sqltxplain_password
SQL> START sqltxtrxec.sql 2524255098 sqltxplain_password

还有其他几种方法,这里不做介绍,大家可以参考安装目录下的 sqlt_instructions.html 。

大多数时候使用  XTRACT方法 比较多,开始生成的文件会有很多,最后结束的时候,会自动将所有生成的文件自动集合打包为一个zip文件, 文件名称类似  sqlt_s70924_xtract_ 8xvmfgf0ybr7q.zip, 最后的是SQL_ID 。 整个过程时间比较长 。 具体如何分析诊断文件,待续….

 

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

转载于:http://blog.itpub.net/35489/viewspace-1062954/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值