微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQLT 概要和安装



主要方法
  • XTRACT
  • XECUTE
  • XTRXEC
  • XPLAIN
  • XTRSBY
  • XPREXT
  • XPREXC

特殊方法
  • COMPARE
  • TRCANLZR
  • TRCAXTR
  • TRCASPLIT
  • XTRSET

高级方法和模块
  • PROFILE
  • XGRAM
  • XPLORE
  • XHUME

sqlT 概览

sqlTXPLAIN,也称为  sqlT,是 Oracle Server Technologies Center of Expertise - ST CoE 提供的一款工具。  sqlT  主要方法 通过输入的一个 sql 语句,可输出一组诊断文件。这些文件通常用于诊断性能不佳或者产生错误结果的 sql 语句。

对于sql语句的调优,sqlT 需要您有一些专业的知识来进行分析。对于许多问题来说我们推荐首先使用sql Health Check 来检查您的sql,假如不能解决再尝试使用sqlT。sqlHC的详细介绍请看:

Document 1366133.1 sql Tuning Health-Check Script (sqlHC)

一旦 安装,便可通过向  sqlT 传递一个包含 sql 语句脚本(包括绑定变量)的文本文件或者其  sql_ID,对 sql 语句进行分析。sql_ID 可在 AWR 和 ASH 的报告中找到,HASH_VALUE 出现在 sql_TRACE 的输出中(sql 文本的上面以"hv="的标志来识别)。您也能在 V$sql 视图中发现这些字段。请参照接下来的文档:

Document 1627387.1 How to Determine the sql_ID for a sql Statement

sqlT  主要方法 会连接到数据库,收集执行计划、基于成本的 Optimizer CBO 统计信息、Schema 对象元数据、性能统计信息、配置参数和会影响正在分析的 sql 性能的其他元素。这些方法会对有问题的sql_ID产生一揽子输出包括一个html格式的"main"报表。关于如何使用"main"报表,您可以参考下面的文档:

Document 1922234.1 sqlT Main Report: Usage Suggestions

sqlT 可以使用 Oracle Diagnostic 和(或)Oracle Tuning Packs,前提是您的数据库需要具有这两个软件包的许可证。这两个软件包向  sqlT 工具提供了增强的功能。在  sqlT 安装期间,您可以指定是否其中一个软件包在您的数据库被授权使用。如果一个都没有, sqlT 仍会提供一些基本信息,用于最开始的 sql 性能诊断。


安全模式

sqlT 在  安装的过程中会创建两个用户一个角色。这些用户和角色的名字都是固定的。

sqlT repository 是由用户  sqlTXPLAIN管理的。 sqlT 的使用者每次使用  sqlT 提供的 主要方法时都要提供  sqlTXPLAIN 的密码。  sqlTXPLAIN 用户被赋予了以下系统权限:

  • CREATE SESSION
  • CREATE TABLE

sqlT 包含的 PL/sql 程序包以及视图都是由用户  sqlTXADMIN 管理的。 sqlTXADMIN 用户处于锁定状态并且由一个随机产生的密码保护。 sqlTXADMIN 用户被赋予了以下系统权限:

  • ADMINISTER sql MANAGEMENT OBJECT
  • ADMINISTER sql TUNING SET
  • ADVISOR
  • ALTER SESSION
  • ANALYZE ANY
  • SELECT ANY DICTIONARY
  • SELECT_CATALOG_ROLE

所有  sqlT 的使用者在使用  sqlT 提供的 主要方法之前必须被赋予  sqlT_USER_ROLE 这个角色。 sqlT_USER_ROLE 角色被赋予了以下系统权限:

  • ADVISOR
  • SELECT_CATALOG_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 安装在其自己的 schema  sqlTXPLAIN 和  sqlTXADMIN 下。它不会将任何对象安装到应用程序 schema 中。您可以在 UNIX、Linux 或 Windows 平台,Oracle DB 10.2、11.1、11.2 及更高版本中安装此版本的 sqlT。对于所有“应用于:”的信息,请参照文档215187.1。

安装步骤:

  1. 卸载先前版(可选)。
  2. 该可选步骤将删除所有废弃的  sqlTXPLAIN/sqlTXADMIN schema 对象,并为全新安装准备环境。如果要保留 sqlT Repository 的现有内容,请跳过此步骤(推荐)。

    # cd sqlt/install
    # sqlplus / as sysdba
    sql> START sqdrop.sql
  3. 以  SYS 身份连接数据库并执行安装脚本  sqlt/install/sqcreate.sql
  4. # cd sqlt/install
    # sqlplus / as sysdba
    sql> START sqcreate.sql

在安装期间,系统将要求您输入以下参数值:

  1. 可选连接标识符(当安装在一个可插拔数据库上时是必须的)
  2. 在一些受限访问的系统中,您可能需要指定连接标识符,例如  @PROD。如果不需要连接标识符,则不要输入任何数据,只需单击回车键。什么也不键入是最常使用的安装方法
    当安装在一个可插拔数据库上时连接标识符是必须提供的。

  3. sqlTXPLAIN 密码。
  4. 在大多数系统中区分大小写。

  5. sqlTXPLAIN 认表空间。
  6. 从可用的永久表空间列表中,选择  sqlT Repository 的  sqlTXPLAIN 应使用的表空间。它必须具有 50MB 以上的可用空间。

  7. sqlTXPLAIN 临时表空间。
  8. 从可用的临时表空间列表中,选择  sqlTXPLAIN 临时操作和临时对象应使用的表空间。

  9. 可选应用程序用户
  10. 这是发出要分析 sql 语句的用户。例如,在 EBS 系统上,指定为  APPS;在 Siebel 上,应指定为 SIEBEL;在 People Soft 上,应指定为  SYSADM。系统不会要求您输入此用户的密码。也可以在安装该工具后添加其他的  sqlT 用户方法为:授予他们角色  sqlT_USER_ROLE

  11. 授权的 Oracle Pack。(T,D 或 N)
  12. 可以指定  T 表示 Oracle Tuning; D 表示 Oracle Diagnostic,或  N 表示都没有。如果选择  T 或  DsqlT 可以在它生成的诊断文件中包含授权的内容认值为  T。如果选择  NsqlT 将只安装限定的功能

如果需要静安装,可以使用下面三个选项来传递所有 6 个安装参数:

  1. 文件中。
  2. 首先使用一个脚本进行值的预先定义,类似于示例脚本  sqlt/install/sqdefparams.sql。然后使用  sqlt/install/sqcsilent.sql,而不是  sqlt/install/sqcreate.sql

    # cd sqlt/install
    # sqlplus / as sysdba
    sql> START sqdefparams.sql
    sql> START sqcsilent.sql
  3. 命令行。
  4. 执行  sqlt/install/sqcsilent2.sql,而不是  sqlt/install/sqcreate.sql。前者以内嵌形式输入 6 个安装参数。

    # cd sqlt/install
    # sqlplus / as sysdba
    sql> START sqcsilent2.sql '' sqltxplain USERS TEMP '' T
  5. 在 Oracle 内部安装。
  6. 执行  sqlt/install/sqcinternal.sql,而不是  sqlt/install/sqcreate.sql。前者首先执行  sqlt/install/sqdefparams.sql,然后是  sqlt/install/sqcsilent.sql

    # cd sqlt/install
    # sqlplus / as sysdba
    sql> START sqcinternal.sql

假如您需要更多关于安装问题的帮助,您能从下面的论坛得到帮助: sqlTXPLAIN: sqlT Installation Issues


卸载  sqlT

卸载  sqlT 会同时移除  sqlT Repository 以及所有  sqlTXPLAIN/sqlTXADMIN schema 对象。另外还会删除  sqlTXPLAIN 和  sqlTXADMIN 用户。要卸载  sqlT,只需以 SYS 身份连接,执行  sqlt/install/sqdrop.sql

# cd sqlt/install
# sqlplus / as sysdba
sql> START sqdrop.sql

升级  sqlT

如果在系统中已安装先前版本的  sqlT,则可以将  sqlT 升级到其最新版本,同时部分保留现有  sqlT Repository 的一些对象。然后可以使用新迁移的  sqlT Repository 来恢复 CBO 统计信息,或者在  sqlT 的新旧执行程序之间执行  COMPARE。

升级  sqlT,只需执行 安装,而不用执行可选 卸载步骤。

如果升级失败,可能是先前的  sqlT 版本太旧而无法升级在这种情况下,请先继续 卸载  sqlT,然后执行全新 安装。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐