(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的特性。
几种主要方法的关系如下:
评论