暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片
(1条消息)解决棘手SQL性能问题,我的SQLT使用心得_杨建荣的学习笔记-CSDN博客.pdf
153
12页
0次
2023-06-29
5墨值下载
(1条消息)解决棘手SQL性能问题,我的SQLT使用心得_杨建荣的
学习笔记-CSDN博客
本文转载自dbaplus社群
作者介绍
丁俊,新炬网络首席性能优化专家,SQL审核产品经理。《剑破冰山-Oracle开发艺术》副主编,ITPUB开发版
资深版主,十余年电信行业从业经验。
一、SQLT背景介绍
SQLTXPLAIN(简称SQLT)是ORACLE COE提供的一款SQL性能诊断工具,SQLT主要方法是通过输入的一个
SQL语句,从而生成一组诊断文件,这些文件用于诊断性能较差的或产生错误结果(WRONG RESULTS)的
SQL。
SQLT产生的诊断文件内容包括执行计划、统计信息、CBO的参数、10053文件、性能变化的历史等需要诊断
SQL性能的一系列文件,而且SQLT还提供一系列工具,比如快速绑定SQL执行计划的工具。
SQLT主要使用场合是在需要快速绑定SQL执行计划,或者一些和参数、BUG等相关的疑难SQL分析中。
二、SQLT家族简介
SQLT主要包含下列方法:
SQLT为一个SQL语句提供了下面 7种主要方法来生成诊断详细信息XTRACT,XECUTE,XTRXEC,XTRSBY,
XPLAIN,XPREXT和XPREXC。XTRACT,XECUTE,XTRXEC,XTRSBY,XPREXT和XPREXC处理绑定变量和
会做 bind peeking(绑定变量窥视),但是XPLAIN不会。这是因为XPLAIN是基于EXPLAIN PLAN FOR 命令
执行的,该命令不做 bind peeking。
因此,如果可能请避免使用XPLAIN,除了XPLAIN的bind peeking限制外,所有这 7种主要方法都可以提供足
够的诊断详细信息,对性能较差或产生错误结果集的SQL进行初步评估。如果该SQL仍位于内存中或者
Automatic Workload Repository (AWR) 中,请使用XTRACT或XTRXEC,其他情况请使用XECUTE。对于
Data Guard或备用只读数据库,请使用XTRSBY。仅当其他方法都不可行时,再考虑使用XPLAIN。XPREXT和
XPREXC是类似于XTRACT和XECUTE,但为了提高SQLT的性能它们禁了一些SQLT的特性。
几种主要方法的关系如下:
其中XTRXEC包括了XTRACT和XECUTE方法,实际上它会同时执行这两个方法生成对应的文件。使用这些方法
后,会生成文件,自动打包。
SQLT的详细内容请参考MOS文档:SQLT 使用指南 (Doc ID 1677588.1),本文重点说下SQLT里比较有用的方
法(本文内容的环境是11.2.0.3)。
三、SQLT宝剑出鞘
1、SQLT生成诊断文件
生成诊断文件使用的是sqlt/run目录下的文件,此目录下还有SQLHC健康检查的脚本。这里看一个例子:
SQL text:
select *
from test1
where test1.status in (select test2.status from test2
where object_name like 'PRC_TEST%');
这是条简单的子查询SQL,其中test1的status有索引,而且status有倾斜分布如下:
dingjun123@ORADB> select status,count(*)
2 from test1
3 group by status;
STATUS COUNT(*)
------- ----------
INVALID 6
of 12
5墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜