SQLT 概要和安装
SQLT
概览安全模式安装SQLT
卸载SQLT
升级SQLT
常见问题上传SQLT文件给Oracle技术支持主要方法XTRACTXECUTEXTRXECXPLAINXTRSBYXPREXTXPREXC
特殊方法COMPARETRCANLZRTRCAXTRTRCASPLITXTRSET
高级方法和模块PROFILEXGRAMXPLOREXHUME
SQLT
概览SQLTXPLAIN
,也称为SQLT
,是 Oracle Server Technologies Center of Expertise - ST CoE 提供的一款工具。SQLT
主要方法通过输入的一个 SQL 语句,可输出一组诊断文件。这些文件通常用于诊断性能不佳或者产生错误结果的 SQL 语句。
对于sql语句的调优,SQLT 需要您有一些专业的知识来进行分析。对于许多问题来说我们推荐首先使用SQL Health Check 来检查您的SQL,假如不能解决再尝试使用SQLT。SQLHC的详细介绍请看:
Document 1366133.1SQL Tuning Health-Check Script (SQLHC)一旦安装,便可通过向SQLT
传递一个包含 SQL 语句脚本(包括绑定变量)的文本文件或者其SQL_ID
,对 SQL 语句进行分析。SQL_ID 可在 AWR 和 ASH 的报告中找到,HASH_VALUE 出现在 SQL_TRACE 的输出中(SQL 文本的上面以"hv="的标志来识别)。您也能在 V$SQL 视图中发现这些字段。请参照接下来的文档:
SQLT
主要方法会连接到数据库,收集执行计划、基于成本的 Optimizer CBO 统计信息、Schema 对象元数据、性能统计信息、配置参数和会影响正在分析的 SQL 性能的其他元素。这些方法会对有问题的SQL_ID产生一揽子输出,包括一个html格式的"main"报表。关于如何使用"main"报表,您可以参考下面的文档:
SQLT
可以使用 Oracle Diagnostic 和(或)Oracle Tuning Packs,前提是您的数据库需要具有这两个软件包的许可证。这两个软件包向SQLT
工具提供了增强的功能。在SQLT
安装期间,您可以指定是否其中一个软件包在您的数据库被授权使用。如果一个都没有,SQLT
仍会提供一些基本信息,用于最开始的 SQL 性能诊断。
安全模式
SQLT
在安装的过程中会创建两个用户和一个角色。这些用户和角色的名字都是固定的。
SQLT
repository 是由用户SQLTXPLAIN
管理的。SQLT
的使用者每次使用SQLT
提供的主要方法时都要提供SQLTXPLAIN
的密码。SQLTXPLAIN
用户被赋予了以下系统权限:
SQLT
包含的 PL/SQL 程序包以及视图都是由用户SQLTXADMIN
管理的。SQLTXADMIN
用户处于锁定状态并且由一个随机产生的密码保护。SQLTXADMIN
用户被赋予了以下系统权限:
所有SQLT
的使用者在使用SQLT
提供的主要方法之前必须被赋予SQLT_USER_ROLE
这个角色。SQLT_USER_ROLE
角色被赋予了以下系统权限:
12c 在缺省情况下 SYS 用户不能作为SQLT
的用户,因为 PL/SQL 安全模型上改变的原因。
为了处理这个改变,SQLTADMIN
需要在 SYS 上被授予INHERIT PRIVILEGES
权限。GRANT INHERIT PRIVILEGES ON USER SYS TO SQLTXADMIN
更多详细的内容请参见 Oracle? Database PL/SQL Language Reference 12c Release 1 (12.1) - Invoker's Rights and Definer's Rights (AUTHID Property) and in Oracle? Database Security Guide 12c Release 1 (12.1) - Managing Security for Definer's Rights and Invoker's Rights
安装
SQLT
SQLT
安装在其自己的 schemaSQLTXPLAIN
和SQLTXADMIN
下。它不会将任何对象安装到应用程序 schema 中。您可以在 UNIX、Linux 或 Windows 平台,Oracle DB 10.2、11.1、11.2 及更高版本中安装此版本的 SQLT。对于所有“应用于:”的信息,请参照文档215187.1。
安装步骤:
卸载先前版(可选)。该可选步骤将删除所有废弃的SQLTXPLAIN/SQLTXADMIN
schema 对象,并为全新安装准备环境。如果要保留 SQLT Repository 的现有内容,请跳过此步骤(推荐)。
#cdsqlt/install#sqlplus/assysdbaSQL>STARTsqdrop.sql以SYS
身份连接数据库并执行安装脚本sqlt/install/sqcreate.sql
。
#cdsqlt/install#sqlplus/assysdbaSQL>STARTsqcreate.sql
在安装期间,系统将要求您输入以下参数值:
可选连接标识符(当安装在一个可插拔数据库上时是必须的)在一些受限访问的系统中,您可能需要指定连接标识符,例如@PROD
。如果不需要连接标识符,则不要输入任何数据,只需单击回车键。什么也不键入是最常使用的安装方法。
当安装在一个可插拔数据库上时连接标识符是必须提供的。
SQLTXPLAIN
密码。在大多数系统中区分大小写。
SQLTXPLAIN
默认表空间。从可用的永久表空间列表中,选择SQLT
Repository 的SQLTXPLAIN
应使用的表空间。它必须具有 50MB 以上的可用空间。
SQLTXPLAIN
临时表空间。从可用的临时表空间列表中,选择SQLTXPLAIN
临时操作和临时对象应使用的表空间。
这是发出要分析 SQL 语句的用户。例如,在 EBS 系统上,指定为APPS
;在 Siebel 上,应指定为 SIEBEL;在 People Soft 上,应指定为SYSADM
。系统不会要求您输入此用户的密码。也可以在安装该工具后添加其他的SQLT
用户,方法为:授予他们角色SQLT_USER_ROLE
。
可以指定T
表示 Oracle Tuning;D
表示 Oracle Diagnostic,或N
表示都没有。如果选择T
或D
,SQLT 可以在它生成的诊断文件中包含授权的内容。默认值为T
。如果选择N
,SQLT 将只安装限定的功能。
如果需要静默安装,可以使用下面三个选项来传递所有 6 个安装参数:
在文件中。首先使用一个脚本进行值的预先定义,类似于示例脚本sqlt/install/sqdefparams.sql
。然后使用sqlt/install/sqcsilent.sql
,而不是sqlt/install/sqcreate.sql
。
#cdsqlt/install#sqlplus/assysdbaSQL>STARTsqdefparams.sqlSQL>STARTsqcsilent.sql命令行。
执行sqlt/install/sqcsilent2.sql
,而不是sqlt/install/sqcreate.sql
。前者以内嵌形式输入 6 个安装参数。
#cdsqlt/install#sqlplus/assysdbaSQL>STARTsqcsilent2.sql''sqltxplainUSERSTEMP''T在 Oracle 内部安装。
执行sqlt/install/sqcinternal.sql
,而不是sqlt/install/sqcreate.sql
。前者首先执行sqlt/install/sqdefparams.sql
,然后是sqlt/install/sqcsilent.sql
。
#cdsqlt/install#sqlplus/assysdbaSQL>STARTsqcinternal.sql
假如您需要更多关于安装问题的帮助,您能从下面的论坛得到帮助:SQLTXPLAIN: SQLT Installation Issues
卸载
SQLT
卸载SQLT
会同时移除SQLT
Repository 以及所有SQLTXPLAIN/SQLTXADMIN
schema 对象。另外还会删除SQLTXPLAIN
和SQLTXADMIN
用户。要卸载SQLT
,只需以 SYS 身份连接,执行sqlt/install/sqdrop.sql
。
#cdsqlt/install#sqlplus/assysdbaSQL>STARTsqdrop.sql
升级
SQLT
如果在系统中已安装先前版本的SQLT
,则可以将SQLT
升级到其最新版本,同时部分保留现有SQLT
Repository 的一些对象。然后可以使用新迁移的SQLT
Repository 来恢复 CBO 统计信息,或者在SQLT
的新旧执行程序之间执行COMPARE。
要升级SQLT
,只需执行安装,而不用执行可选卸载步骤。
如果升级失败,可能是先前的SQLT
版本太旧而无法升级。在这种情况下,请先继续卸载SQLT
,然后执行全新安装。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。