温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

SQLT 概要和安装

发布时间:2020-08-11 21:01:02 来源:ITPUB博客 阅读:103 作者:pxbibm 栏目:关系型数据库

  • SQLT 概览
  • 安全模式
  • 安装  SQLT
  • 卸载  SQLT
  • 升级  SQLT
  • 常见问题
  • 上传SQLT文件给Oracle技术支持

主要方法
  • 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 或  D,SQLT 可以在它生成的诊断文件中包含授权的内容。默认值为  T。如果选择  N,SQLT 将只安装限定的功能。

如果需要静默安装,可以使用下面三个选项来传递所有 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,然后执行全新 安装。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI