FAQ: SQLT (SQLTXPLAIN) Frequently Asked Questions (Doc ID 1454160.1) SQLT常见问题

PURPOSE   目的

This document answers some of the frequently asked questions about the SQLTXPLAIN (SQLT) tool. You can download the latest version of SQLT here:

本文档回答了有关SQLTXPLAIN(SQLT)工具的一些常见问题。您可以在此处下载最新版本的SQLT

Document 215187.1 SQLT (SQLTXPLAIN) - Tool That Helps To Diagnose SQL Statements Performing Poorly

Document 215187.1 SQLT (SQLTXPLAIN) - 帮助诊断性能不佳的SQL语句的工具

For SQL usage and installation instructions, refer to:

有关SQL用法和安装说明,请参阅:

Document 1614107.1 SQLT Usage Instructions

NOTE: If you want to simply perform a Health Check on your SQL environment that leaves no database footprint  then see:
注意:如果您只想在不占用数据库资源的SQL环境上执行运行状况检查,请参阅:

Document 1366133.1 SQL Tuning Health-Check Script (SQLHC)

Ask Questions, Get Help, And Share Your Experiences With SQLT

Would you like to explore SQLT further with other Oracle Customers, Oracle Employees, and Industry Experts?

We have various threads available where you can ask questions, get help from others, and share your experiences with SQLTXPLAIN:

SQLTXPLAIN: SQLT Installation Issues
SQLTXPLAIN: Dealing with Long Execution Times
SQLTXPLAIN: Dealing with Errors reported in SQLT MAIN report
SQLTXPLAIN: Using SQLT on a Stand-by or Dataguard
SQLTXPLAIN: Interpreting and Understanding SQLT Output
SQLTXPLAIN (SQLT): General Discussion

Discover discussions about other articles and helpful subjects by clicking here to access the main My Oracle Support Community page for Database Tuning.

QUESTIONS AND ANSWERS     问题与解答

Background and Structure     背景和结构

  • What is SQLTXPLAIN, also known as SQLT    什么是SQLTXPLAIN,也称为SQLT

    SQLT is a tool that can be used to diagnose why a specific SQL statement may be performing poorly. It takes a single SQL statement as input and outputs a set of diagnostics that can be used to improve the statement's performance.
    SQLT是一种工具,可用于诊断为什么特定SQL语句的性能可能不佳。它以单个SQL语句作为输入,并输出一组可用于提高语句性能的诊断。
    SQLT provides large amounts of information to a SQL Tuner on a wide range of topics pertinent to that SQL including execution plans, Cost-based Optimizer CBO statistics, schema objects metadata, performance statistics, configuration parameters, and other elements that influence the performance of the one SQL being analyzed. An example Menu showing the various options is shown below:
    SQLT向SQL Tuner提供有关该SQL的广泛主题的大量信息,包括执行计划,基于成本的Optimizer CBO统计信息,架构对象元数据,性能统计信息,配置参数以及其他影响SQL Server性能的元素。正在分析一种SQL。下面显示了显示各种选项的示例菜单:FAQ: SQLT (SQLTXPLAIN) Frequently Asked Questions (Doc ID 1454160.1) SQLT常见问题_第1张图片 
  • In addition it provides history information for these (some of this history needs AWR to access) and links in to other useful tools such as the SQL Tuning Advisor (subject to license). It also generates a transportable, 'no data' testcase.此外,它提供了这些的历史记录信息(其中一些历史记录需要AWR访问),并链接到其他有用的工具,例如SQL Tuning Advisor(视许可证而定)。它还会生成一个可移植的“无数据”测试用例。
  • What is the origin of  SQLT?    SQLT的起源是什么?

    SQLTXPLAIN is a tool provided by Oracle Server Technologies Center of Expertise - ST CoE. It have been in usage in support for over 10 years following its creation in 1999. It has been developed and improved over that time to reflect changes in the Oracle Database and to add additional functionality. It is constantly evolving and being updated. SQLTXPLAIN是Oracle服务器技术专业知识中心-ST CoE提供的工具。自从1999年创建以来,它在支持中已经使用了10多年了。在此期间,已经对其进行了开发和改进,以反映Oracle数据库中的更改并添加其他功能。它在不断发展和更新。
  • Is there a light weight way of gathering SQLT-like information?    是否有一种轻量级的方式来收集类似SQLT的信息?

    Although it does not have the depth or scope of SQLT, there is a script called SQLHC which provides a subset of the SQL used by the SQLT script. SQLHC is shipped along with SQLT and can be executed using the following 2 scripts:
    尽管它没有SQLT的深度或范围,但是有一个名为SQLHC的脚本,它提供了SQLT脚本使用的SQL的子集。SQLHC与SQLT一起提供,并且可以使用以下两个脚本执行:  
           sqlhc.sql    -- Runs from a SQL_ID
           sqlhcxec.sql -- Runs from a Script file
    

    for more details regarding SQLHC, see:     有关SQLHC的更多详细信息,请参见:

    Document 1366133.1 SQL Tuning Health-Check Script (SQLHC)s

  • IS SQLHC a complement or a substitute for SQLT?    SQLHC是SQLT的补充还是替代?

    SQLT is far more advanced than SQLHC; while it incorporates similar checks to those done in SQLHC it offers far wider functionality. SQLHC is simply a quick health check for a statement and is a subset of the SQL used by the SQLT script but unlike SQLT, has no database footprint. It is a relatively short SQL script that generates a HTML output. It extracts database statistic information using selects or standard APIs (such as DBMS_XPLAN) from the database and combines that with AWR output if the correct licenses are available. For tuning SQL, SQLT requires some level of expertise to get the most from it. For most issues we recommend that you start by checking the query using SQL Health Check and then progress to SQLT if you are unable to resolve the issue. For details of SQLHC see:   SQLT比SQLHC先进得多。尽管它包含与SQLHC中执行的检查类似的检查,但它提供了更广泛的功能。SQLHC只是对语句的快速运行状况检查,并且是SQLT脚本使用的SQL的子集,但与SQLT不同,它没有数据库占用空间。这是一个较短的SQL脚本,可生成HTML输出。它使用selects或标准API(例如DBMS_XPLAN)从数据库中提取数据库统计信息,并在可获得正确许可证的情况下将其与AWR输出结合。为了调优SQL,SQLT需要一定程度的专业知识才能充分利用它。对于大多数问题,我们建议您首先使用SQL运行状况检查检查查询,如果无法解决问题,请继续进行SQLT。有关SQLHC的详细信息,请参见:

    Document 1366133.1 SQL Tuning Health-Check Script (SQLHC)


    An overview video about SQLHC is available here :     有关SQLHC的概述视频,请参见:

    Document 1455583.1 SQL Tuning Health-Check Script (SQLHC) Video

    For general usage information, see:    有关常规用法信息,请参阅:

    Document 1366133.1 SQL Tuning Health-Check Script (SQLHC)
    Document 1417774.1 FAQ: SQL Health Check (SQLHC) Frequently Asked Questions

  • What would you use first? SQLHC or SQLT?     您首先要使用什么?SQLHC或SQLT?

    When you initially encounter a problem with a SQL statement, we would advise that you use SQLHC.   最初遇到SQL语句问题时,建议您使用SQLHC。
    If that finds nothing wrong then follow that up with SQLT.    如果发现没有问题,请继续使用SQLT。
    Of course you can start with SQLT but you may not need all the functionality that it provides and with SQLHC you do not have to worry about database footprint and all that entails.    当然,您可以从SQLT开始,但是您可能不需要SQLT提供的所有功能,而使用SQLHC则不必担心数据库占用空间以及随之而来的所有问题。

  • Can SQLT be used safely in production?     SQLT是否可以在生产中安全使用?

    Yes. But this is something you would need to validate If you decide to use it, initially you would probably want to install it on test. If you can reproduce the issue you are seeing there, then you do not need to install on production. If it only happens in production, then once you are happy in Test then you can schedule the installation on production and capture the information from there.  是。但是,这是您需要验证的内容。如果决定使用它,则最初可能要在测试中安装它。如果您可以重现在此看到的问题,则无需在生产环境中进行安装。如果仅在生产中发生,那么一旦您对Test满意,就可以安排生产安装并从那里捕获信息。
  • What level of expertise is required to use SQLT?     使用SQLT需要什么级别的专业知识?

    SQLT assumes that the user knows about SQL Tuning. It is not designed to take you step by step through an issue if you do not know anything about tuning SQL. It will not teach you SQL Tuning. It is similar to reading an AWR report - if you are familiar with Database Performance concepts then AWR will be familiar to you and SQLT is similar.   SQLT假定用户了解SQL调优。如果您对调优SQL一无所知,它的目的不是逐步解决问题。它不会教您SQL Tuning。这类似于阅读AWR报告-如果您熟悉数据库性能概念,那么AWR将对您很熟悉,并且SQLT也很相似。

Compatible Versions      兼容版本

  • Is the SQLT tool the same for all versions?      所有版本的SQLT工具都一样吗?

    No.
    SQLT has been developed over time and is currently on its 3rd revision which was designed for Oracle 10g Release and above.  SQLT已经随着时间发展,目前在其上专为Oracle 10g版本及以上的第三次修订。
    For 9.2 and 10.1 instances, a separate version is available from the Central SQLT article.  对于9.2和10.1实例,Central SQLT文章中提供了单独的版本。
  • Can SQLT be used on Oracle 9i and 10gR1?     可以在Oracle 9i和10gR1上使用SQLT吗?

    Yes. For 9.2 and 10.1 instances, a separate version is available from the Central SQLT article.   是。对于9.2和10.1实例,Central SQLT文章中提供了单独的版本。

Licensing     许可

  • What is the licensing requirement for SQLT?        SQLT的许可要求是什么?

    SQLT requires no license and is FREE.    SQLT不需要许可证,并且是免费的。

    SQLT can use data from the Oracle Diagnostic and/or the Oracle Tuning Packs if your site has a license for them. These two packs provide enhanced functionality to the SQLT tool. During SQLT installation you can specify if one of these two packages is licensed by your site. You can specify "T" for Oracle Tuning Pack, "D"
    for Oracle Diagnostics Pack or "N" for none (note that the Tuning pack license includes the Diagnostics pack).
    如果您的站点具有许可证,SQLT可以使用Oracle诊断和/或Oracle调整包中的数据。这两个软件包为SQLT工具提供了增强的功能。在安装SQLT的过程中,您可以指定两个软件包之一是否由您的站点许可。您可以为Oracle Tuning Pack指定“ T”,
    为Oracle Diagnostics Pack 指定“ D” ,或者为没有指定“ N”(请注意,Tuning Pack许可证包括Diagnostics Pack)。

    If "T" or "D" is selected, SQLT may include licensed content within the diagnostics files it produces. The Default is "T".
    If "N" is selected, SQLT installs with limited functionality but still provides some basic information that can be used for initial SQL performance diagnostics. With no packs SQLT will not use anything from AWR nor the tuning pack; so no ADDM, AWR, ASH and no SQL Tuning Advisor output will be included.
    如果选择“ T”或“ D”,则SQLT可能会将许可内容包含在它生成的诊断文件中。默认值为“ T”。
    如果选择“ N”,则SQLT的安装功能有限,但仍提供一些可用于初始SQL性能诊断的基本信息。没有包,SQLT将不使用AWR或调优包中的任何内容。因此将不包含ADDM,AWR,ASH和SQL Tuning Advisor输出。

    Note that if the v$option.parameter is TRUE for 'Partitioning', SQLT will attempt to create some objects as partitioned tables on the assumption that a Partitioning license has been purchased. This is done for performance reasons. If you do not have a valid partitioning license then ensure that the v$option.parameter is FALSE for 'Partitioning'. You can check the value in SQL*Plus with:
    请注意,如果对于“分区”,v$option.parameter 为TRUE,则SQLT将假定已购买了分区许可证,尝试将某些对象创建为分区表。这样做是出于性能原因。如果您没有有效的分区许可证,请确保 v$option.parameter 对于“分区”为FALSE。您可以使用以下方法检查SQL * Plus中的值:
    column parameter format a20
    column value format a10
    
    SELECT parameter,value FROM v$option WHERE parameter = 'Partitioning';
    For more details see:      有关更多详细信息,请参见:
     

    Document 1951018.1 SQLT Utility and Partitioned Tables      SQLT和分区表


    You should check with your site license manager if you have doubts regarding the licensing arrangements with regard to Oracle packs.     如果您对有关Oracle软件包的许可安排有疑问,请与您的站点许可证管理者联系。
    SQLT does NOT check for a valid license.      SQLT不会检查有效的许可证。
  • How do I check in the DB whether or not tuning and diagnostic packs are installed / available based on licensing    如何在数据库中检查是否根据许可安装了调试和诊断包/是否可用

    Most packs are installed by default because the database itself uses the AWR repository. The license allows you to use the AWR repository.    默认情况下会安装大多数软件包,因为数据库本身使用AWR存储库。该许可证允许您使用AWR存储库。
    There is no way of checking if you are entitled to use such a license in the database, but you can check whether  the packs are enabled in the database using:   无法检查您是否有权在数据库中使用此类许可证,但是可以使用以下方法检查数据库中是否启用了软件包:

    Document 436386.1 Controlling Diagnostic and Tuning Pack Usage

      
    Since it is the it is the user's responsibility to comply with license requirements and not violate license agreements, Support advises that if you do not know whether you have the entitlement to use a license then choose "N" so as to avoid using a feature you are not licensed for. Feature usage is recorded in the dba_feature_usage_statistics view. There is an example of how you can check for AWR usage in the following document:   由于这是用户有责任遵守许可要求并且不违反许可协议,因此支持建议您,如果您不知道自己是否具有使用许可的权利,请选择“ N”,以避免使用功能。没有获得许可。功能使用情况记录在dba_feature_usage_statistics视图中。在以下文档中有一个示例如何检查AWR使用情况:   

    Document 1490798.1 AWR Reporting - Licensing Requirements Clarification

      
    You should check with your site license manager if you have doubts regarding the licensing arrangements with regard to Oracle packs.    如果您对有关Oracle软件包的许可安排有疑问,请与您的站点许可证管理者联系。
    SQLT does NOT check for a valid license.  SQLT不会检查有效的许可证。

    The Diagnostic Pack is a Subset of the Tuning pack so if you have Tuning you have the diagnostic pack.
    You can refer to Licensing Guide for details about what is included in Tuning Pack and Diagnostic Pack. See:
     

    Oracle® Database Licensing Information
    12c Release 1 (12.1)
    Part number E17614-08
    Chapter 2 Options and Packs
    Oracle Tuning Pack
    http://docs.oracle.com/database/121/DBLIC/options.htm#DBLIC139

  • What is missing from the reports if the Tuning Pack is not installed?    如果未安装Tuning Pack,报告中会缺少什么?

    SQLT uses packs to give it access to AWR (Automatic Workload Repository) based information  (AWR information is accessible via the Diagnostic pack; the Tuning pack is a superset of the Diagnostic pack so either will provide access to this information). The AWR infrastructure is installed by default (because the database uses AWR information for internal purposes), the real question is whether you are licensed to use it or not.
    SQLT使用 packs 使它能够访问基于AWR(自动工作负载存储库)的信息(可通过Diagnostic pack访问AWR信息;Tuning pack是Diagnostic pack的超集,因此它们都将提供对此信息的访问)。默认情况下会安装AWR基础结构(因为数据库出于内部目的使用AWR信息),真正的问题是您是否已获得使用许可。

    SQLT uses AWR to provide historical information regarding the execution of SQL. So, for example, if a plan had changed over time, it would use AWR information to report on that.
    SQLT使用AWR提供有关SQL执行的历史信息。因此,例如,如果计划随时间变化,它将使用AWR信息对此进行报告。
    If AWR information is not made available by the presence of a license for one of the aforementioned packs, then the AWR related information will not be reported.
    如果存在上述软件包之一的许可证,则无法提供AWR信息,则不会报告与AWR相关的信息。
    In addition the Tuning Pack provides access to the SQL Tuning Advisor.
    此外,Tuning Pack还提供对SQL Tuning Advisor的访问。
    Without pack licenses, SQLT still provides some basic information that can be used for initial SQL performance diagnostics. 没有pack许可证,SQLT仍会提供一些基本信息,可用于初始SQL性能诊断。
  • When using SQLT, is it more beneficial to have AWR than not having AWR?    使用SQLT时,拥有AWR比没有AWR更有益吗?

    Yes, it is more beneficial to use AWR alongside SQLT.      是的,与SQLT一起使用AWR更有利。
    AWR information is a component of the diagnostic pack and is fundamental for performance diagnostics and interpretation. Generally, if you do not have AWR then you would need to use statspack but this is of limited use on later versions.
    AWR信息是diagnostic pack的组成部分,是性能诊断和解释的基础。通常,如果您没有AWR,则需要使用statspack,但这在以后的版本中用途有限。
    If you have enterprise editions it is very useful to have AWR to diagnose performance issues.  如果您有企业版,则使用AWR诊断性能问题非常有用。
    Specifically for SQLT, having AWR information provides more usable diagnostic output than without, so we would recommend it but it is not a pre-requisite.  专门针对SQLT,拥有AWR信息会比没有提供更多的可用诊断输出,因此我们建议您这样做,但这不是先决条件。

Installation, Setup and Usage     安装,设置和使用

  • Is there a Install Guide for SQLT?     是否有SQLT安装指南?

    Installation instructions are included in the SQLT usage guide which can be found here:   
    安装说明包含在SQLT使用指南中,可以在以下位置找到:

    Document 1614107.1 SQLT Usage Instructions

    These instructions are also in the sqlt_instructions.html file included in the downloaded SQLT zip file.  这些说明也位于下载的SQLT zip文件中包含的sqlt_instructions.html文件中。
  • Where can I obtain SQLT Installation Advice?    在哪里可以获得SQLT安装建议?

    The best place to get SQLT installation advice is the My Oracle Support Community (MOSC). Refer to the following thread where you can benefit from the shared experience of the community, ask questions and get help from others:
    获得SQLT安装建议的最佳位置是My Oracle Support Community(MOSC)。请参考以下主题,您可以在其中受益于社区的共同经验,提出问题并获得他人的帮助:

    SQLTXPLAIN: SQLT Installation Issues

  • Where can I download SQLT?     在哪里可以下载SQLT?

    You can download SQLT from:     您可以从以下位置下载SQLT:
     

    Document 215187.1 SQLT (SQLTXPLAIN) - Tool That Helps To Diagnose SQL Statements Performing Poorly

  • How Do I install / re-install / un-install SQLT?    如何安装/重新安装/卸载SQLT?

    You can find the install / re-install / un-install instructions in the SQLT usage guide which can be found here:  您可以在SQLT使用指南中找到安装/重新安装/卸载说明,该指南可在此处找到:

    Document 1614107.1 SQLT Usage Instructions

    These instructions are also in the sqlt_instructions.html file included in the downloaded SQLT zip file.   这些说明也位于下载的SQLT zip文件中包含的sqlt_instructions.html文件中。

  • How Much space does SQLT take up?      SQLT占用多少空间?

    In the majority of cases, 100Mb is plenty of space. However, if the queries that you are analyzing with SQLT access tables with thousands of partitions, you may need more than that. SQLT does not store application data. It only stores metadata on the SQL and the dependent objects.  在大多数情况下,100Mb是足够的空间。但是,如果您要使用SQLT分析的查询访问具有成千上万个分区的表,则可能需要的还不止这些。SQLT不存储应用程序数据。它仅将元数据存储在SQL和相关对象上。
  • How Do I upgrade SQLT?   如何升级SQLT?

    You can find SQLT upgrade instructions in the upgrade section of the following article:   您可以在以下文章的升级部分中找到SQLT升级说明:

    Document 1614107.1 SQLT Usage Instructions

    These instructions are also in the sqlt_instructions.html file included in the downloaded SQLT zip file.   这些说明也位于下载的SQLT zip文件中包含的sqlt_instructions.html文件中。
  • If SQLT is already installed, how Do I determine the version?   如果已经安装了SQLT,如何确定版本?

    The following SQL, run as SYS or the SQLTXPLAIN user will provide version information:   以下以SYS或SQLTXPLAIN用户身份运行的SQL将提供版本信息:
    COL sqlt_version FOR A40;
    SELECT
    'SQLT version number: '||sqltxadmin.sqlt$a.get_param('tool_version')||CHR(10)||
    'SQLT version date  : '||sqltxadmin.sqlt$a.get_param('tool_date')||CHR(10)||
    'Installation date  : '||sqltxadmin.sqlt$a.get_param('install_date') sqlt_version
    FROM DUAL
    /
    
    SQLT_VERSION
    ----------------------------------------
    SQLT version number: 12.1.05
    SQLT version date  : 2013-12-11
    Installation date  : 2014-01-27/10:25:37

  • hat does SQLT do during installation?    SQLT在安装过程中会做什么?

    SQLT creates a repository in the database under the SQLTXPLAIN user to record information concerning the queries that are analyzed by the tool and also creates a number of directories on disk. Full details can be found in the documentation contained in the zip file downloaded above.   SQLT在SQLTXPLAIN用户的帮助下在数据库中创建一个存储库,以记录有关该工具分析的查询的信息,并且还在磁盘上创建许多目录。完整的详细信息可以在上面下载的zip文件中包含的文档中找到。
  • Can SQLT be installed into an existing schema instead of creating a new schema?   是否可以将SQLT安装到现有模式中,而不是创建新模式?

    SQLT requires its own schema to be installed      SQLT需要安装自己的架构
  • Do you need the SYS password to run SQLT?       您需要SYS密码才能运行SQLT吗?

    In order to install SQLT, you need to be connected internal. To run SQLT once it is installed, No.   为了安装SQLT,您需要内部连接。要在安装SQLT之后运行它,否。
  • Can I reset the password for the SQLTXPLAIN user?   我可以重设SQLTXPLAIN用户的密码吗?

    Yes. Although the SQLT schema (SQLTXPLAIN) is fixed, the password can be changed just like any normal Oracle password.   是。尽管SQLT模式(SQLTXPLAIN)是固定的,但可以像更改任何普通Oracle密码一样更改密码。
  • If the Applications password is unavailable, is SYS/SYSTEM a viable alternative?   如果“应用程序”密码不可用,SYS/SYSTEM是否可行?

    You can run with these users, but this is not the preferred way of running SQLT; when collecting SQLT for Support, you should try to get the applications password, if possible. The primary issue is that, without the application password, some pieces of information will be missing, such as the 'explain plan for' output, and although in most cases this is not required, in some cases this information is important. That said, SQLT still collects plenty of extremely useful information without it.
    您可以与这些用户一起运行,但这不是运行SQLT的首选方法;它是运行SQLT的首选方法。收集SQLT for Support时,如果可能,应尝试获取应用程序密码。主要问题是,如果没有应用程序密码,则会丢失某些信息,例如“explain plan for”输出,尽管在大多数情况下并不需要,但在某些情况下,此信息很重要。也就是说,如果没有SQLT,SQLT仍然会收集大量非常有用的信息。
    Starting in Oracle Database 12c, if you must execute SQLT as user SYS, then you must first grant user SQLTXADMIN inherit privileges on SYS.  从Oracle Database 12c开始,如果必须以用户SYS的身份执行SQLT,则必须首先授予用户SQLTXADMIN对SYS的继承特权。
    GRANT INHERIT PRIVILEGES ON USER sys TO sqltxadmin;

  • hich Schema should I register as the application scema? For example we have 3 schemas in the DB with cross permissions - Schema A is the main schema but uses objects from B and C. How does that work with SQLT?   我应该将哪种模式注册为应用程序脚本?例如,我们在数据库中有3个具有交叉许可权的模式-模式A是主要模式,但使用来自B和C的对象。这如何与SQLT一起使用?

    When you install SQLT it asks who is the main application user. You can pick any schema for this, it does not matter. When you want to examine a SQL with SQLT then you need to register the schema that actually runs the SQL. So, once you have installed SQLT, connect as SYS and grant the SQLT user role to the schema you run the SQL as. Then use those schemas to run the SQLT against the SQL that those schemas run. If you don't grant the role to all the schemas and have only referenced one, SQLT will still be able to pick up the references to tables and object in the SQL that are from any other schemas. All the register does is setup the runtime environment to run as that particular user.   安装SQLT时,它将询问谁是主要的应用程序用户。您可以为此选择任何架构,这无关紧要。当您想使用SQLT检查SQL时,您需要注册实际运行SQL的模式。因此,安装SQLT后,以SYS身份连接并将SQLT用户角色授予运行SQL的架构。然后,使用这些架构针对这些架构所运行的SQL运行SQLT。如果您没有将角色授予所有模式,而仅引用了一个,则SQLT仍然能够从其他任何模式中获取对SQL中表和对象的引用。寄存器所做的只是设置运行时环境以该特定用户身份运行。
  • When database is upgraded from 10.2 to 11.2, what is SQLT upgrade path?    当数据库从10.2升级到11.2时,SQLT升级路径是什么?

    If the database is upgraded SQLT should work without any actions being performed. To be completely safe re-execute spcreate.sql    如果数据库已升级,则SQLT应该可以正常运行而无需执行任何操作。为了完全安全,请重新执行spcreate.sql
  • If I install SQLT on a production Db and it is later cloned, will SQLT work "out-of-the-" box on the clone?   如果我在生产Db上安装了SQLT并随后对其进行了克隆,那么SQLT是否可以在克隆上“开箱即用”?

    In the past this would not work because there was a dependency on the bdump/udump directories. But today it will check and refresh the pointers so it should work.    过去这是行不通的,因为对bdump / udump目录存在依赖性。但是今天它将检查并刷新指针,因此它应该可以工作。
  • Is any special setup needed to install SQLT on a server with multiple database instances?   在具有多个数据库实例的服务器上安装SQLT是否需要任何特殊的设置?

    SQLT install is primarily about installing SQLT into a particular database. If you have multiple databases you have to install SQLT into each one where you have SQL statements you want to analyze. You can, however, install SQLT into multiple databases from the same install directory.   SQLT安装主要是关于将SQLT安装到特定数据库中。如果您有多个数据库,则必须将SQLT安装到要分析SQL语句的每个数据库中。但是,您可以将SQLT从同一安装目录安装到多个数据库中。
  • How Frequently should SQLT be run?     SQLT应该多久运行一次?

    SQLT is not designed to check all SQL statements, rather, when you have concerns about the performance of a single SQL statement then run it for that SQL.   SQLT并非旨在检查所有SQL语句,而是在您担心单个SQL语句的性能时,然后针对该SQL运行它。

    SQLT takes a snapshot of the SQL and the environment around it, so use SQLT when you want to analyze the environment at a particular time. If SQL has intermittent performance issues then run in SQLT to collect information from the good and the bad times. If it works on one system and not another then run SQLT on both. Then compare the information and use the differences to identify where the problem lies.   SQLT会对SQL及其周围的环境进行快照,因此,当您要在特定时间分析环境时,请使用SQLT。如果SQL出现间歇性的性能问题,则可以在SQLT中运行以从时好时坏收集信息。如果它在一个系统上运行而不在另一个系统上运行,则在两个系统上运行SQLT。然后比较信息并使用差异来确定问题所在。

    When used with AWR (with appropriate licenses), SQLT can also look at historical data.   与AWR(具有适当的许可证)一起使用时,SQLT也可以查看历史数据。
  • Can install be scripted/automated?    可以脚本化/自动化安装吗?

    The SQLT install process itself is scripted in a script called sqlt/install/sqcreate.sql If you have dozens of installations to do on multiple machines with the same answers to the questions, then you may want to automate the install process. In the instructions file, after it describes the installation steps it has options for an automatic install with no user input giving you 2 options that you can follow to do this. This can enable you to automate multiple installs.    SQLT安装过程本身是用名为 sqlt/install/sqcreate.sql的脚本编写的。如果要在多台计算机上进行数十次安装,并且对问题的答案相同,那么您可能希望自动化安装过程。在说明文件中,在说明安装步骤后,它具有自动安装选项,无需用户输入,为您提供了2个选项,您可以按照这些选项进行操作。这可以使您自动执行多个安装。
  • Do we need to worry about maintenance for SQLEXPLAIN tablespace?    我们是否需要担心SQLEXPLAIN表空间的维护?

    The tool has a repository which can grow over time. There is a purge script in the utl (utilities) directory called "sqlthistpurge.sql" which can purges a range of statements from the SQLT repository based on SQL_ID. But in most cases the repository will not get large because we only store metadata NOT application data.   该工具具有一个可以随着时间增长的存储库。utl(实用程序)目录中有一个清除脚本,称为“ sqlthistpurge.sql”,该脚本可以基于SQL_ID从SQLT存储库中清除一系列语句。但是在大多数情况下,存储库不会变大,因为我们仅存储元数据而不存储应用程序数据。

SQLT Runtime/Installation Errors   SQLT运行时/安装错误

  • How do we deal with installation and runtime issues?      我们如何处理安装和运行时问题?

    Please refer to the following document for details of commonly encountered installation and runtime issues:    请参阅以下文档,以获取常见的安装和运行时问题的详细信息:

    Document 1670677.1 FAQ: Common SQLT (SQLTXPLAIN) Runtime/Installation Errors

    Additionally there is a SQLTXPLAIN: SQLT Installation Issues thread in the Oracle Communities where you can ask questions, get Help, and share your experiences of SQLT with other Oracle Customers, Oracle Employees, and Industry Experts.   此外,Oracle社区中还有一个SQLTXPLAIN:SQLT安装问题线程,您可以在其中询问问题,获得帮助并与其他Oracle客户,Oracle员工和行业专家分享您的SQLT经验。
  • How do I generate a SQLT of a SQL statement that hangs or raises an error    如何生成挂起或引发错误的SQL语句的SQLT

    If you are unable to generate a SQLT for a statement because the statement hangs or generates an error then refer to the following article:      如果由于语句挂起或生成错误而无法为该语句生成SQLT,请参考以下文章:

    Document 2146816.1 Generate a SQLT of a SQL Statement That Hangs or Raises an Error

Functionality     功能性

  • What platforms does SQLT work on?     SQLT在什么平台上工作?

    SQLT is platform independent. SQLT uses SQL Scripts to generate output files. The SQLT report is in html format so any browser capable of displaying html will be able to display it.    SQLT是平台无关的。SQLT使用SQL脚本生成输出文件。SQLT报告为html格式,因此任何能够显示html的浏览器都可以显示该报告。
  • Does SQLT capture All the SQL from a Database or capture specific schemas only?   SQLT是从数据库捕获所有SQL还是仅捕获特定模式?

    SQLT works on a single SQL statement at a time and captures only ONE specific SQL_ID or HASH_VALUE    SQLT一次处理一个SQL语句,并且仅捕获一个特定的SQL_ID或HASH_VALUE
  • Is SQLT able to analyze many SQLs simultaneously (e.g. from a SQL Tuning Set)?  SQLT是否能够同时分析许多SQL(例如,from a SQL Tuning Set)?

    No. SQLT works on a single SQL statement at a time and captures only ONE specific SQL_ID or HASH_VALUE. If you want to perform comparative baseline analysis you should look at SQL Plan Management in conjunction with the SQL Performance Analyzer and Real Application testing (dependent on your requirements).   不可以。SQLT一次只能处理一个SQL语句,并且只能捕获一个特定的SQL_ID或HASH_VALUE。如果要执行比较基准分析,则应结合SQL Performance Analyzer和Real Application测试(取决于您的要求)来查看SQL计划管理。
  • If we have multiple SQLs in a session, how do we use SQLT one by one?    如果在一个会话中有多个SQL,我们如何一个接一个地使用SQLT?

    SQLT works on a single SQL statement at a time. You would need to supply the SQL_ID or HASH_VALUE for the SQL you are interested in from the session. Once you have analyzed one SQL_ID you can move it on to the next.   SQLT一次处理一个SQL语句。您需要为会话中您感兴趣的SQL提供SQL_ID或HASH_VALUE。一旦分析了一个SQL_ID,就可以将其移至下一个。
  • If we have multiple reports for the same query where the plan has changed, can these be compared?   如果我们在计划已更改的同一查询中有多个报告,可以比较这些报告吗?

    In this case use the COMPARE method. This allows you to take two similar sources but the same SQL statement performs fine in one of them but not in the other. This method helps to pin-point the differences between the two SOURCES in terms of plans, metadata, CBO statistics, initialization parameters and bug fix-control. See the COMPARE Section in the sqlt/sqlt_instructions.html file included in the zip file.   在这种情况下,请使用COMPARE方法。这使您可以采用两个相似的源,但是相同的SQL语句在其中一个中表现良好,但在另一个中却不能。此方法有助于从计划,元数据,CBO统计信息,初始化参数和错误修复控制方面查明两个SOURCES之间的差异。请参阅zip文件中包含的sqlt / sqlt_instructions.html文件中的COMPARE部分。
  • Can we use this tool for PL/SQL code?     我们可以将此工具用于PL/SQL代码吗?

    You can use SQLT on PL/SQL but if the focus is on a specific SQL statement, if you don't know where exactly the time is spent then 10046 or PL/SQL profiling may work better. Instructions on the use of the profiler can be found in the following article:   您可以在PL / SQL上使用SQLT,但是如果重点是特定的SQL语句,如果您不知道确切的时间在哪里,那么10046或PL / SQL分析可能会更好。可以在以下文章中找到有关使用探查器的说明:
     

    Document 243755.1 Implementing and Using the PL/SQL Profiler

  • Can SQLT be used in a distributed environment?     可以在分布式环境中使用SQLT吗?

    Yes, we can use SQLT in a distributed environment. To do this, store SQLT on the remote node or nodes and the main node. When run on the main node, SQLT can then connect to the remote nodes and produce SQLT extracts from the remote nodes and package everything together.   是的,我们可以在分布式环境中使用SQLT。为此,请将SQLT存储在一个或多个远程节点和主节点上。在主节点上运行时,SQLT然后可以连接到远程节点,并从远程节点生成SQLT提取并将所有内容打包在一起。
  • Where can I find the SQL_ID or HASH_VALUE?    在哪里可以找到SQL_ID或HASH_VALUE?

    The SQL_ID can be found on an AWR report, and the HASH_VALUE on any SQL Trace (above the SQL text and identified by the "hv=" token).    可以在AWR报告中找到SQL_ID,并在任何SQL跟踪中找到HASH_VALUE(在SQL文本上方并由"hv=" token)。
    You can also find these columns in the V$SQL view using a select similar to:  
    您还可以使用类似于以下内容的选择在V$SQL视图中找到这些列:
    select SQL_ID, HASH_VALUE ,substr(SQL_TEXT,1,30) Text
    from V$SQL
    where SQL_TEXT like '%&Some_Identifiable_String%';

    Please also refer to the following document for more examples:   另请参阅以下文档以获取更多示例:

    Document 1627387.1 How to Determine the SQL_ID for a SQL Statement

  • Can SQLT take the PLAN_HASH_VALUE as input?   SQLT可以将PLAN_HASH_VALUE用作输入吗?

    No, it uses the  SQL_ID or HASH_VALUE (not PLAN HASH VALUE)   不,它使用SQL_ID或HASH_VALUE
  • Can it be used on Queries containing Multiple Tables, Views etc?    可以用于包含多个表,视图等的查询吗?

    Yes. SQLT supports all valid SQL statements.   是。SQLT支持所有有效的SQL语句。
  • Can it be used where SQL references objects from multiple schemas?   SQL可以从多个架构引用对象的地方使用吗?

    Yes.
    Note that when creating a SQLT testcase, SQLT will condense the objects from different schemas into a single remapped schema     请注意,在创建SQLT测试用例时,SQLT会将来自不同架构的对象浓缩为单个重新映射的架构
  • Does SQLT work across multiple databases via a dblink?    SQLT是否可以通过dblink跨多个数据库工作?

    Yes, SQLT works in a distributed environment    是的,SQLT在分布式环境中工作
  • Does SQLT handle literal values and bind variables?   SQLT是否处理文字值并绑定变量?

    Yes. Because bind peeking can affect plans, SQLT will report bind variable history and the different plans that different binds have generated.    是。由于绑定窥探会影响计划,因此SQLT将报告绑定变量历史记录以及不同绑定已生成的不同计划。
  • How does SQLT handle bind variables?    SQLT如何处理绑定变量?

    Bind variable values are stored in metadata and are associated with any different plans that they generate.   绑定变量值存储在元数据中,并与它们生成的任何不同计划相关联。
  • Does SQLT provide formatted 10053 output?   SQLT是否提供格式化的10053输出?

    SQLT collects 10053 trace but it does not re-format it.   SQLT收集10053跟踪,但不会重新设置其格式。
     
    10053 is an internal trace and it is not documented. It was created by development for development to analyse issues with the cost based optimizer. It is included in SQLT output for completeness and so that we have the trace in the event that there is a need to engage Oracle support or development.   10053是内部跟踪,没有记录。它是由开发人员创建的,用于开发以分析基于成本的优化器的问题。为了完整起见,它包含在SQLT输出中,以便在需要Oracle支持或开发的情况下跟踪我们。
  • Can I use previously generated trace file(s) such as 10046 or 10053 trace file(s) as an input to SQLT?   我可以使用以前生成的跟踪文件(例如10046或10053跟踪文件)作为SQLT的输入吗?

    No SQLT works from a SQL_ID and it generated the information from the database at the time the SQLT is executed. It does not re-format 'old' 10046 or 10053 trace   SQLT通过SQL_ID起作用,并且在执行SQLT时从数据库生成了信息。它不会重新格式化“旧” 10046或10053跟踪
  • How do you execute the different SQLT Methods?    您如何执行不同的SQLT方法?

    The different methods are initiated with individual scripts, one for each method. For example:
    不同的方法以单独的脚本启动,每种方法一个。例如:
    A detailed description of the difference is in the "sqlt_instructions.html" document included in sqlt.zip   差异的详细说明在sqlt.zip中包含的“ sqlt_instructions.html”文档中
    • XTRACT - sqlt/run/sqltxtract.sql
    • XECUTE - sqlt/run/sqltxtract.sql
    • XTRXEC - sqlt/run/sqltxtrxec.sql
    • XPLAIN - sqlt/run/sqltxplain.sql
  • What is the difference between XTRACT, XECUTE, XTRXREC and XPLAIN?    XTRACT,XECUTE,XTRXREC和XPLAIN有什么区别?

    These are the different methods by which you may execute the SQLT tool.   这些是执行SQLT工具的不同方法
    A detailed description of the difference is in the "sqlt_instructions.html" document included in sqlt.zip   差异的详细说明在sqlt.zip中包含的“ sqlt_instructions.html”文档中
  • What should you run first XTRACT or XECUTE?   您应该先运行XTRACT还是XECUTE?

    Since the XECUTE method provides runtime information, that is going to have more information that XTRACT, however it depends on the circumstances. If the SQL does not complete in a timely fashion then XTRACT is more suitable. If the query does not take too long to run then the Execute option is going to give you more information. Additionally, EXECUTE mode contains various segment and session information that cannot be delivered with XTRACT so we would suggest you try to get Execute if possible.    由于XECUTE方法提供了运行时信息,因此它将具有比XTRACT更多的信息,但是这取决于具体情况。如果SQL无法及时完成,则XTRACT更合适。如果查询运行时间不会太长,那么Execute选项将为您提供更多信息。此外,EXECUTE模式包含各种XTRACT无法提供的段和会话信息,因此我们建议您尝试获取Execute。
  • If the SQL in question does not complete, is SQLT still useful?    如果有问题的SQL未完成,SQLT仍然有用吗?

    If the problem SQL statement does not finish, then SQLT can still give you useful information. What it can provide depends on whether the cause of the delay is generating the access path or executing the query.
    如果问题SQL语句未完成,则SQLT仍可以为您提供有用的信息。它可以提供什么取决于延迟的原因是生成访问路径还是执行查询。
    If the problem is at execution time then SQLT can still produce information about the access path that will be used. Additionally the SQLT calls to SQL monitor can provide you with partial execution information which can prove useful even though it is not complete. 11g XTRACT will give you the statistics for the execution even though it is not complete.
    如果问题出在执行时,则SQLT仍可以生成有关将使用的访问路径的信息。此外,对SQL监视器的SQLT调用可以为您提供部分执行信息,即使信息不完整,这些信息也可能有用。即使尚未完成,11g XTRACT也会为您提供执行的统计信息。
    If the query does not complete parsing, then the optimizer has not finished choosing an access path for the query so SQLT will only get limited information. Since SQLT is primarily a tool for displaying the results of generating an access path alongside the supporting information used to do that, you would probably be better off using something else to trace why the generation of the plan took too long (this will likely require interaction with support who will likely request traces such as 10046 and errorstack to start diagnosis of the issue).  如果查询未完成解析,则优化器尚未完成选择查询的访问路径,因此SQLT将仅获得有限的信息。由于SQLT主要是用于显示生成访问路径的结果以及用于执行该操作的支持信息的工具,因此最好使用其他方法来跟踪计划生成时间太长的原因(这可能需要进行交互)在支持下,他们可能会要求提供诸如10046和错误堆栈之类的痕迹以开始诊断问题。
  • Does sqlt actually execute the SQL statement or will collect info about executed statements only?   sqlt实际执行SQL语句还是仅收集有关已执行语句的信息?

    This depends on the mode used. For example, XTRACT will pick up previously executed statements, XECUTE will execute the statement    这取决于使用的模式。例如,XTRACT将选择先前执行的语句,XECUTE将执行该语句
  • Is a hard parse of the analyzed SQL mandatory for the XECUTE method? Is this the purpose of the "/* ^^unique_id */" comment?  XECUTE方法是否必须对分析的SQL进行硬解析?这是“ / * ^^ unique_id * /”注释的目的吗?

    Yes. The hard parse is forced so as to guarantee the generation of the 10053 report.   是。强制进行硬解析,以确保生成10053报告。
  • Using SQLT against queries that generate errors    对产生错误的查询使用SQLT

    Some of the information that SQLT generates relies on the query in question being successful:   SQLT生成的某些信息取决于所查询的是否成功:In such cases investigate the cause of the error before attempting to use SQLT.   在这种情况下,请在尝试使用SQLT之前调查错误的原因。
    • If the query fails to parse then there will be no plan information available.  如果查询无法解析,则将没有可用的计划信息。
    • If the query fails to execute then methods such as XECUTE and XTRXREC will not be able to generate runtime information.  如果查询执行失败,则诸如XECUTE和XTRXREC之类的方法将无法生成运行时信息。
  • Can SQLT be used in a distributed environment?   可以在分布式环境中使用SQLT吗?

    Yes, we can use SQLT in a distributed environment. To do this, store SQLT on the remote node or nodes and the main node. When run on the main node, SQLT can then connect to the remote nodes and produce SQLT extracts from the remote nodes and package everything together.    是的,我们可以在分布式环境中使用SQLT。为此,请将SQLT存储在一个或多个远程节点和主节点上。在主节点上运行时,SQLT然后可以连接到远程节点,并从远程节点生成SQLT提取并将所有内容打包在一起
  • Is the functionality provided in SQLTXPLAIN also available in RAT (Real Application Testing)?  SQLTXPLAIN中提供的功能在RAT(真实应用程序测试)中也可用吗?

    No.
    SQLT functionality is not available in RAT, they are two separate entities.
    SQLT功能在RAT可用,它们是两个独立的实体。
    SQLTXPLAIN is tool to enable users to analyze and tune the performance of a single SQL statement.  SQLTXPLAIN是使用户能够分析和调整单个SQL语句的性能的工具。
    The Real Application Testing option is a licensed product that allows potential issues with system changes to be identified before they are deployed in a production environment.  Real Application Testing选件是一种许可产品,它允许在将系统更改部署到生产环境中之前识别出系统更改的潜在问题。
  • How does SQLT get historical information regarding SQL statements?   SQLT如何获取有关SQL语句的历史信息?

    If you are licensed to use AWR then SQLT can access AWR to access historical information.   如果您已获得使用AWR的许可,则SQLT可以访问AWR以访问历史信息。
  • Does SQLT contain any graphical output?   SQLT是否包含任何图形输出?

    As its primary output, SQLT generates an HTML report (along with a number of supporting files in various formats). There are no 'graphics' or 'graphs' as such. SQLT in general presents text output related to the SQL in question grouped and formatted for ease of use.   作为其主要输出,SQLT生成一个HTML报告(以及许多各种格式的支持文件)。没有这样的“图形”或“图形”。通常,SQLT会显示与所讨论的SQL相关的文本输出,这些文本经过分组和格式化以易于使用。
  • Can we use SQLT to identify different output for SQL on different clients?   我们可以使用SQLT在不同的客户端上为SQL标识不同的输出吗?

    Yes. SQLT can help in diagnose this kind of issue. If a different plan is generated then the information related to that plan is recorded and can be compared to determine what is making the difference.   是。SQLT可以帮助诊断此类问题。如果生成了不同的计划,则记录与该计划相关的信息,并可以将其进行比较以确定造成差异的原因。
    • Can you set a time for when to run sqlt. For example, for the case where the query only runs slowly in the middle of the night?  您可以设置运行sqlt的时间吗?例如,对于查询仅在深夜运行缓慢的情况?

      There isn't a facility directly withing SQLT that allows this automation. You could obviously automate it with external tools. However, since SQLT is able to look at the execution history, as long as the execution details are still in the history, then there is no need to execute SQLT at the time of the issue. In this example, you should be able to come in during the morning after the issue and use the SQL_ID to get the ru·11·n details.   没有直接与SQLT配合使用的工具允许这种自动化。您显然可以使用外部工具将其自动化。但是,由于SQLT能够查看执行历史记录,因此只要执行详细信息仍在历史记录中,那么在发出问题时就无需执行SQLT。在此示例中,您应该能够在问题发出后的早晨进入,并使用SQL_ID获取运行详细信息。

Report Analysis    报告分析

  • How do I Interpret and analyze the main report?   如何解释和分析主报告?

    If a SQL statement takes a long time, then collect information via SQLT. You then need to analyze the information which requires SQL Tuning expertise. If you do not have that expertise then consider getting someone else to help you such Advanced Customer Services or other consulting options or use the SQL Tuning Advisor (assuming that you have the required licenses). You can find some usage suggestions in the following document:   如果一条SQL语句花费很长时间,则可以通过SQLT收集信息。然后,您需要分析需要SQL Tuning专业知识的信息。如果您不具备该专业知识,则可以考虑让其他人来帮助您,例如高级客户服务或其他咨询选项,或者使用SQL Tuning Advisor(假设您具有必需的许可证)。您可以在以下文档中找到一些使用建议:

    Document 1922234.1 SQLT Main Report: Usage Suggestions

     
    The following webcast also provides basic navigation help:

    Document 1456176.1 Oracle Database Advisor Webcast Schedule and Archive recordings
        => "Database Tuning - Using SQLTXPLAIN To Diagnose SQL Statements Performing Poorly "


    which you could use alongside advisory content from My Oracle Support:

    Document 199083.1 Master Note: SQL Query Performance Overview

  • What are the main things to look for in the observations section?   在观察部分中需要寻找的主要内容是什么?

    The key findings in the observations section are different from case to case. Something that is unimportant in one report may be crucial for another.For example, an index may have been dropped on one of the tables in a query. This might change the access path in some queries but have no affect on others. Because of this there is no way to mark something one finding as as more critical than another. The observations are simply presented as a "heads up" for evaluation as otherwise there is a possibility of supplying misleading information. There is more on interpreting the observations section in the following article:   观察部分中的关键发现因案例而异。一个报表中不重要的内容可能对另一个报表至关重要,例如,索引可能已删除到查询中的一个表上。这可能会更改某些查询中的访问路径,但不会影响其他查询。因此,无法将某项发现标记为比另一项发现更为关键。观察结果只是作为“提示”进行评估,否则可能会提供误导性信息。下一篇文章中有更多有关解释观察部分的内容:

    Document 1922234.1 SQLT Main Report: Usage Suggestions

  • Is information from memory 'better' than the information from the DBA_HIST_* views?   来自内存的信息是否比来自DBA_HIST_ *视图的信息“更好”?

    The answer is yes. SQLT is able to provide more detailed information on an execution plan when it is located within the library cache than within the AWR. (This is not a SQLT limitation, but rather, SQLT is limited to which details of the execution plan are retained in the AWR.) For example, when a FILTER operation is displayed from library cache, the "More" column displays Filter Predicates and Projection. However, these details are not available to display when the only available source of the execution plan is the AWR. Both the information from memory and from AWR that SQLT uses may be aggregated. This means that if a single execution performs differently but uses the same plan then it may be difficult to identify that. In that case the AWR SQL Report is useful. See: awrsqrpt.sql from:   答案是肯定的。当SQLT位于库缓存中而不是AWR中时,它能够提供有关执行计划的更多详细信息。(这不是SQLT的限制,而是SQLT限于将执行计划的详细信息保留在AWR中。)例如,当从库缓存中显示FILTER操作时,“更多”列将显示过滤谓词和投影。但是,当执行计划的唯一可用来源是AWR时,这些详细信息将无法显示。SQLT使用的来自内存和AWR的信息都可以汇总。这意味着,如果单个执行的执行结果不同,但使用相同的计划,则可能难以识别。在这种情况下,AWR SQL报告很有用。请参阅:awrsqrpt.sql,来自:

    Document 748642.1 How to Generate an AWR Report and Create Baselines     如何生成AWR报告和创建基准

  • If the database structure has not changed, why is there more than one explain plan in SQLT?   如果数据库结构没有更改,为什么在SQLT中有多个解释计划?

    There are many reasons for the same SQL to generate different plans. One of these of course is that the underlying structures have changed but others include using different bind variable values and histograms to drive different execution plans, multiple sessions using slightly different optimizer 'versions' by changing parameters and data types or data lengths differing within one application as compared to another application. For more details on the various reasons see:    相同的SQL生成不同计划的原因很多。其中之一当然是基础结构已更改,但其他结构包括使用不同的绑定变量值和直方图来驱动不同的执行计划,通过更改一个应用程序中不同的参数和数据类型或数据长度,使用不同的优化器“版本”进行多个会话与其他应用程序相比 有关各种原因的更多详细信息,请参见:

    Document 296377.1 Troubleshooting: High Version Count Issues

  • How can I implement an explain plan suggested by SQLT?    如何实施SQLT建议的解释计划?

    SQLT does not suggest execution plans - SQL Tuning Advisor does that. If you have the Oracle Tuning Pack license then SQLT can execute SQL Tuning Advisor and this may suggest a better plan for the SQL. You can implement that via a SQL_profile. See:   SQLT不建议执行计划-SQL Tuning Advisor会这样做。如果您拥有Oracle Tuning Pack许可证,则SQLT可以执行SQL Tuning Advisor,这可能会建议一个更好的SQL计划。您可以通过SQL_profile来实现。看到:

    Document 271196.1 Automatic SQL Tuning - SQL Profiles.

    If you want to fix a particular plan that has already been detected then see review the dynamic readme generated by any of the main methods and look for "Create SQL Plan Baseline from SQL Set". This documents using SQL Plan Management SPM through a SQL Set.    如果要修复已检测到的特定计划,请参阅查看由任何主要方法生成的动态自述文件,并查找“Create SQL Plan Baseline from SQL Set”。本文档通过SQL集使用SQL计划管理SPM进行记录。
  • How do I delete an existing SQL Profile created by SQLT?    如何删除SQLT创建的现有SQL配置文件?

    As mentioned, SQLT does not create profiles - SQL Tuning Advisor does that. If you have the Oracle Tuning Pack license then SQLT can execute SQL Tuning Advisor and this may suggest a better plan for the SQL. You can implement that via a SQL_profile. To delete a profile you use the standard procedure for deleting any SQL profile. See:    如前所述,SQLT不会创建配置文件-SQL Tuning Advisor会这样做。如果您拥有Oracle Tuning Pack许可证,则SQLT可以执行SQL Tuning Advisor,这可能会建议一个更好的SQL计划。您可以通过SQL_profile来实现。要删除配置文件,请使用标准过程删除所有SQL配置文件。看到:

    Document 271196.1 Automatic SQL Tuning - SQL Profiles.

Performance    性能

  • Does SQLT take a lot of Database resources to execute?    SQLT是否需要大量数据库资源来执行?

    The amount of resource used depends on the method used. Some methods just extract plans from the repository and so are relatively light. Other methods (such as the XECUTE method) may need to run the SQL which means the resource taken is at least the resource needed to execute that statement. Usually the benefit of executing and capturing the execution of the statement is much higher than the few minutes it takes to run when compared to not having that information.   使用的资源量取决于使用的方法。有些方法只是从存储库中提取计划,因此相对较轻。其他方法(例如XECUTE方法)可能需要运行SQL,这意味着所占用的资源至少是执行该语句所需的资源。通常,与没有该信息相比,执行和捕获语句执行所带来的好处要比运行该几分钟所花费的时间要多得多。
  • How much memory does SQLT use?      SQLT使用多少内存?

    SQLT is not resource intensive. It is just a script. If it runs for 10 mins then its the equivalent of running any other script for 10 mins.       SQLT不会占用大量资源。这只是一个脚本。如果运行10分钟,则相当于运行任何其他脚本10分钟。

Software Compatibility    软件兼容

  • Does SQLT work with --Insert application here--      SQLT是否可与-在此处插入应用程序-

    SQLT is a series of SQL scripts and a repository that uses SQL commands run against the data dictionary and the repository to produce a report. It can work against any SELECT generated by any application software.   SQLT是一系列SQL脚本,使用SQL命令的存储库针对数据字典和存储库运行以生成报告。它可以与任何应用程序软件生成的任何SELECT一起使用。
  • Are there any limitations on using SQLT in a Database running EBusiness Suite?    在运行电子商务套件的数据库中使用SQLT是否有任何限制?

    No.
  • Does SQLT work with RAC and Exadata?   SQLT是否可以与RAC和Exadata一起使用?

    Yes.
    SQLT is RAC and Exadata aware
  • Is any Exadata specific information captured in report for the SQL?   SQL报表中是否捕获了任何Exadata特定信息?

    Yes some parameters and IO calibration is captured but not much else. From the SQL Tuning point of view Exadata is not very different to a standard database.    是的,捕获了一些参数和IO校准,但没有其他很多。从SQL Tuning的角度来看,Exadata与标准数据库没有太大区别
  • What is the difference between SQLT and the SQL Performance Analyzer.   SQLT和SQL Performance Analyzer之间有什么区别。

    The tools were designed for totally different reasons. SQL Performance Analyzer is part of Real Application Testing (RAT) suite and enables you to assess the impact of system changes on the response time of SQL statements. SQLT is to help you understand what the root cause of an issue with a particular statement is.   这些工具的设计基于完全不同的原因。SQL Performance Analyzer是Real Application Testing(RAT)套件的一部分,使您能够评估系统更改对SQL语句的响应时间的影响。SQLT可以帮助您了解特定语句问题的根本原因是什么。
  • Is SQLT integrated into Oracle Enterprise Manager (OEM)/Grid Control?  SQLT是否集成到Oracle Enterprise Manager(OEM)/Grid Control中?

    No.
    SQLT is a standalone tool but will work alongside these tools.
  • Why Would you want to use SQLT when you have OEM?     有OEM时为什么要使用SQLT?

    OEM and SQLT performs two different job and are not mutually exclusive Oracle Enterprise Manager Database Control is the primary tool for managing your Oracle database. SQLT is a tool specifically for facilitating the tuning of individual SQL statements.  OEM和SQLT执行两种不同的工作,并且不是互斥的Oracle Enterprise Manager Database Control是管理Oracle数据库的主要工具。SQLT是专门用于简化单个SQL语句的工具。

SQLT Testcase Generator    SQLT测试用例生成器

  • What is the SQLT Testcase Generator?    什么是SQLT测试用例生成器?

    When SQLT gathers information about a candidate SQL statement, it automatically builds a testcase to enable the current plan in the SQL to be reproduced. It does this by storing the metadata of all the objects involved (including views and materialized views) in the query in a testcase schema so that it can be recreated on a test schema. No user data is stored, but the optimizer statistics are recorded so that the plan can be recreated. Most of the time data is not necessary to reproduce the plan (typically,it is only necessary to reproduce performance or incorrect results). See the following for more details:   当SQLT收集有关候选SQL语句的信息时,它会自动构建一个测试用例以使SQL中的当前计划能够被重现。它通过在测试用例模式中存储查询中涉及的所有对象(包括视图和实例化视图)的元数据来做到这一点,以便可以在测试模式中重新创建它。没有存储用户数据,但记录了优化程序统计信息,以便可以重新创建计划。在大多数情况下,不需要数据来重现计划(通常,仅需要重现性能或不正确的结果)。有关更多详细信息,请参见以下内容:
     

    Document 1470811.1 How to Use SQLT (SQLTXPLAIN) to Create a Testcase Without Row Data     如何使用SQLT(SQLTXPLAIN)创建没有行数据的测试用例
    Document 1465741.1 How to Use SQLT (SQLTXPLAIN) to Create a Testcase Containing Application Data    如何使用SQLT(SQLTXPLAIN)创建包含应用程序数据的测试用例

  • Does SQLT Testcase generate user data?    SQLT Testcase是否生成用户数据?

    No. It records the structure and the statistics only. These are all we need to reproduce the access path.   它仅记录结构和统计信息。这些都是我们复制访问路径所需要的。
  • In order to reproduce a SQLT Testcase, is the same hardware required on each server?   为了重现SQLT测试用例,每个服务器上是否需要相同的硬件?

    Usually no. SQLT records system statistics and these are usually sufficient to make the target system "think" that it is the same as the source    SQLT记录系统统计信息,这些通常足以使目标系统“认为”它与源系统相同
  • Can I have multiple system stats on a test system?    一个测试系统上可以有多个系统统计信息吗?

    SQLT does not contain a specific facility to load up multiple sets of system statistics, nor is there a history for system statistics. You can however save and restore different system statistics manually but there is only one set of system stats available at any time. See:    SQLT不包含用于加载多组系统统计信息的特定功能,也没有用于系统统计信息的历史记录。但是,您可以手动保存和恢复不同的系统统计信息,但是随时只有一组系统统计信息可用。看到:
     

    Document 149560.1 How to Collect and Display System Statistics (CPU and IO) for CBO use      如何为CBO使用收集和显示系统统计信息(CPU和IO)​​​​​​​
    Document 470316.1 Using Actual System Statistics (Collected CPU and IO information)   
    使用实际系统统计信息(收集的CPU和IO信息)​​​​​​​
    Document 153761.1 System Statistics: Scaling the System to Improve CBO optimizer   系统统计信息:扩展系统以改进CBO优化器​​​​​​​
    Document 427939.1 System Statistics: How to gather system stats for a particular batch of work   系统统计信息:如何收集特定批次工作的系统统计信息

  • Do we need to take a backup before running SQLT?    在运行SQLT之前是否需要进行备份?

    It is generally prudent to backup before installing any software on a production system.    在生产系统上安装任何软件之前,通常应谨慎备份。
    With a Testcase generated from SQLT, since this is usually going to be installed in a test system, there is not usually any specific need to backup any data. Note that if the system statistics of the target are going to be changed to replicate a plan, then you may wish to save these before modifying them.   使用从SQLT生成的测试用例,由于通常将其安装在测试系统中,因此通常不需要备份任何数据。请注意,如果要更改目标的系统统计信息以复制计划,那么您可能希望在修改它们之前保存它们。
  • Can you use SQLT to analyze a SQL statement just with a source system?   您可以仅使用源系统使用SQLT来分析SQL语句吗?

    It is best to analyze SQLT data on a source system since that is where the runtime information for the statement is recorded.   最好在源系统上分析SQLT数据,因为这是记录语句的运行时信息的位置。
    In terms of a testcase you would probably be better running that on a test system as opposed to production.   就测试用例而言,您可能最好在测试系统上而不是在生产系统上运行它。
  • Can we use SQLT testcase to reproduce Oracle materialized view issue on a Test system?   我们可以使用SQLT测试用例在测试系统上重现Oracle实例化视图问题吗?

    Yes. All metadata is transferred to a special schema for the testcase together with the associated statistics and environment etc to allows us to reproduce the plan. No Data is transferred.   所有元数据以及相关的统计信息和环境等都将转移到测试用例的特殊模式,以使我们能够重现计划。没有数据传输。
  • Are there any special considerations when working with dictionary and fixed objects? Do they map to one schema too?  使用字典和固定对象时是否有特殊注意事项?它们也映射到一个模式吗?

    Dictionary/fixed objects are handled just the same as any other objects; if you have queries containing dictionary/fixed object then they are extracted into a special schema for the testcase together with the associated statistics and environment etc to allows us to reproduce the plan. No Data is transferred.    字典/固定对象的处理方式与其他任何对象相同。如果您有包含字典/固定对象的查询,则将它们与相关的统计信息和环境等一起提取到测试用例的特殊模式中,以使我们能够重现计划。没有数据传输。
  • If we use Real Application Cluster (RAC) for our Production database, and no RAC for our Development database, then does the testcase still reproduce the SQL Plan in the Development database ?   如果我们将Real Application Cluster(RAC)用于生产数据库,而没有将RAC用于开发数据库,​​那么测试用例是否仍在Development数据库中重现SQL计划?

    Yes. You can reproduce the same plan in DEV regardless of RAC or not.   不论是否使用RAC,都可以在DEV中重现同一计划。
  • Is the Objective of SQLT Testcase to only reproduce the same execution plan, not help to retrieve the best execution plan?  SQLT Testcase的目标是否仅重现相同的执行计划,而无助于检索最佳执行计划?

    SQLT Testcase reproduces the same execution plan so that you can then use tools to determine a better plan if that is possible. Tools such SQL Tuning Advisor enable that and SQLT integrates that if you have the relevant licenses.   SQLT Testcase重现了相同的执行计划,因此您可以使用工具来确定更好的计划(如果可能)。如果您具有相关的许可证,则诸如SQL Tuning Advisor之类的工具将启用该功能,并且SQLT会将其集成。

Miscellaneous    其他

  • In SQLT Version 11.4.4.8 and below "!=" is converted into "=", potentially giving wrong information?  在SQLT 11.4.4.8及更低版本中,“!=”转换为“ =”,可能会提供错误的信息?

    This issue is fixed in SQLT Version 11.4.4.9 and above. As a workaround convert instances of "!=" in the input SQL into "<>". To find your current SQLT Version, run the following SQL as the SYS or SQLTXPLAIN user:   此问题已在SQLT 11.4.4.9及更高版本中修复。解决方法是将输入SQL中的“!=”实例转换为“ <>”。要查找您当前的SQLT版本,请以SYS或SQLTXPLAIN用户身份运行以下SQL:​​​​​​​
    COL sqlt_version FOR A40;
    
    SELECT
    'SQLT version number: '||sqltxadmin.sqlt$a.get_param('tool_version')||CHR(10)||
    'SQLT version date  : '||sqltxadmin.sqlt$a.get_param('tool_date')||CHR(10)||
    'Installation date  : '||sqltxadmin.sqlt$a.get_param('install_date') sqlt_version
    FROM DUAL
    /
    
    SQLT_VERSION
    ----------------------------------------
    SQLT version number: 11.4.4.8
    SQLT version date  : 2012-09-27
    Installation date  : 2012-10-24/09:56:12

    ​​​​​​​

  • What is the CBO?   什么是CBO?

    CBO is the Cost-Based Optimizer.       CBO是基于成本的优化器。
    The Cost-Based Optimizer is built-in software that determines the most efficient way to execute a SQL statement using statistics to determine the most optimal access path for queries.
    基于成本的优化器是内置软件,该软件使用统计信息来确定执行查询的最佳途径,从而确定执行SQL语句的最有效方法。

    Oracle Database Online Documentation 12c Release 1 (12.1)
    Database Administration
    Database SQL Tuning Guide
    Chapter 4 Query Optimizer Concepts
    http://docs.oracle.com/database/121/TGSQL/tgsql_optcncpt.htm#TGSQL192

  • What is AWR?    什么是AWR?

    AWR is the Automatic Workload Repository. See document:    AWR是自动工作量存储库。查看文件:
      

    Document 1363422.1 Automatic Workload Repository (AWR) Reports - Start Point

  • In the SQLT report, why is the "Last rows" not "Actual rows"?    在SQLT报表中,为什么“最后一行”不是“实际行”?

    "Last rows" is used because those numbers are related to the last execution. If this varies for some reason then this information may be important. The data is the same you can get from RUNSTATS_LAST in DBMS_XPLAN.DISPLAY_CURSOR, please refer to DBMS_XPLAN reference document for details.   使用“最后一行”是因为这些数字与上次执行有关。如果由于某些原因而有所不同,则此信息可能很重要。数据与您从DBMS_XPLAN.DISPLAY_CURSOR中的RUNSTATS_LAST获得的数据相同,有关详细信息,请参考DBMS_XPLAN参考文档。

Original Shipped FAQ    原始常见问题

These questions are taken from the Original FAQ section within the "sqlt_instructions.html" in the sqlt.zip downloadable from:  这些问题来自sqlt.zip中“ sqlt_instructions.html”中的“原始常见问题”部分,可从以下网站下载:

Document 215187.1 SQLT (SQLTXPLAIN) - Tool That Helps To Diagnose SQL Statements Performing Poorly

  • What is new in this SQLT release?    此SQLT版本中有哪些新功能?

    A summary of recent SQLT changes can be found in file: "sqlt/doc/sqlt_changes.html"    可以在以下文件中找到最近SQLT更改的摘要: "sqlt/doc/sqlt_changes.html"
  • How do I make a SQL statement use a plan that I can only achieve by using CBO Hints?   如何使SQL语句使用只能通过使用CBO提示才能实现的计划?

    The question assumes you cannot modify the original SQL for whatever reason.   该问题假定您出于任何原因都无法修改原始SQL。
    You want to "capture" the plan from a modified version of your SQL (the one with CBO Hints) and associate this "good" plan to the original un-modified SQL.    您想从SQL的修改版本(带有CBO Hints的版本)“捕获”计划,并将此“良好”计划与原始未修改的SQL相关联。

    If on 11g consider a SQL Plan Baseline by using "sqlt/utl/coe_load_sql_baseline.sql".   如果在11g上,请使用"sqlt/utl/coe_load_sql_baseline.sql"考虑一个SQL Plan Baseline。
    If on 10g consider a custom SQL Profile by using "sqlt/utl/coe_load_sql_profile.sql"  如果在10g上,请使用"sqlt/utl/coe_load_sql_profile.sql" 考虑自定义SQL配置文件
  • ORA-00942: table or view does not exist: Error at line 1: SELECT prev_sql_id, prev_child_number FROM sys.my_v$session  

    Using XECUTE method and getting error above. It means the "script.sql" passed to this method is bogus. Your script must be able to execute stand-alone without errors.   使用XECUTE方法并出现上述错误。这意味着传递给此方法的“ script.sql”是伪造的。您的脚本必须能够独立执行且没有错误。
  • "ORA-07445" or "ORA-03114: not connected to ORACLE".

    Review alert.log and the trace referenced by this error. If failed SQL uses V$SQL_PLAN, then there is a database bug in your system. You can pursue a fix logging a ticket and providing alert.log and the referenced trace. SQLT can workaround this bug with some loss of functionality:    查看alert.log和此错误引用的跟踪。如果失败的SQL使用V$SQL_PLAN,则系统中存在数据库错误。您可以进行记录日志的修复,并提供alert.log和引用的跟踪。SQLT可以通过一些功能丧失来解决此错误:
    EXEC sqltxadmin.sqlt$d.set_param('predicates_in_plan', 'N');
    If alert.log includes error :   如果alert.log包含错误:​​​​​​​
    BEGIN CTXSYS.CTX_REPORT.CREATE_INDEX_SCRIPT(index_name => :name, report => :report); END;
    then try SQLT for a 2nd time. If problem persists, then apply following workaround with minimal loss of functionality:  然后第二次尝试使用SQLT。如果问题仍然存在,请应用以下解决方法,同时将功能损失降至最低:​​​​​​​
    EXEC sqltxadmin.sqlt$d.set_param('domain_index_metadata', 'Y');  

  • How do I analyze a distributed query?    如何分析分布式查询?

    Install this SQLT tool in your local and remote nodes. Then on your local node make SQLT aware of the remote nodes by registering the database links your SQL or the dependent objects referenced:   在本地和远程节点上安装此SQLT工具。然后,在本地节点上,通过注册数据库链接来使SQLT知道远程节点,这些链接是您的SQL或引用的从属对象:​​​​​​​
    EXEC sqltxadmin.sqlt$i.register_db_link('db_link_name');

    ​​​​​​​

  • XTRACT or XECUTE methods are taking too long.  XTRACT或XECUTE方法花费的时间太长。

    Review corresponding log file. The culprit could be the 11g Test Case Builder TCB and/or the SQL Tuning Advisor STA. These two utilities are usually time consuming. You can sacrifice their functionality and improve the performance of SQLT by disabling SQLT access to the TCB and reducing the threshold time for the STA:    查看相应的日志文件。罪魁祸首可能是11g测试用例构建器TCB和/或SQL Tuning Advisor STA。这两个实用程序通常很耗时。您可以通过禁用对TCB的SQLT访问并减少STA的阈值时间来牺牲其功能并提高SQLT的性能:​​​​​​​
    EXEC sqltxadmin.sqlt$a.set_param('test_case_builder', 'N');
    EXEC sqltxadmin.sqlt$a.set_param('sta_time_limit_secs', '30');
    If SQLT still takes a long time, and the schema objects behind your SQL contain a large number of sub-partitions, you can reduce the granularity of the data collected:   如果SQLT仍然花费很长时间,并且SQL后面的模式对象包含大量的子分区,则可以减小收集的数据的粒度:​​​​​​​
    EXEC sqltxadmin.sqlt$a.set_param('c_gran_segm', 'PARTITION');
    EXEC sqltxadmin.sqlt$a.set_param('c_gran_cols', 'PARTITION');
    EXEC sqltxadmin.sqlt$a.set_param('c_gran_hgrm', 'PARTITION');

  • How do I register additional SQLT users?     如何注册其他SQLT用户?

    SQLT users must be granted the SQLT_USER_ROLE role.  To grant the SQLT_USER_ROLE, execute the following connected as SYS:      必须授予SQLT用户SQLT_USER_ROLE角色。要授予SQLT_USER_ROLE,执行以下以SYS连接的命令:
    GRANT SQLT_USER_ROLE TO @Application_User;
    ​​​​​​​
  • Can I change the SQLT staging directory?    我可以更改SQLT登台目录吗?

    Yes, use "sqlt/utl/sqltcdirs.sql" passing the full directory path. This path cannot contain the "?" or "*" symbols and it is case sensitive in most systems. This directory must exist in the server and ORACLE must have read/write access to it. The recommended directory is UDUMP. Aliases are not allowed.    是的,使用"sqlt/utl/sqltcdirs.sql" 传递完整目录路径。此路径不能包含“?” 或“ *”符号,并且在大多数系统中区分大小写。该目录必须存在于服务器中,并且ORACLE必须对其具有读/写访问权限。推荐的目录是UDUMP。不允许使用别名。
  • How to suppress the export of the SQLT repository?   如何抑制SQLT存储库的导出?

    SQLT repository is needed to generate a Test Case TC and to troubleshoot a query performing poorly. If you are sure the exported repository is not needed, use this command to disable its automatic export:   需要SQLT存储库来生成测试用例TC并解决查询性能差的问题。如果确定不需要导出的存储库,请使用以下命令禁用其自动导出:
    EXEC sqltxadmin.sqlt$a.set_param('export_repository', 'N'); 

  • What is my SQLT tool version?  我的SQLT工具版本是什么?

    SELECT sqltxadmin.sqlt$a.get_param('tool_version') FROM DUAL;

  • How to keep the SQLT repository small?  如何保持较小的SQLT存储库?

    You can purge the SQLT repository periodically by using provided script:     您可以使用提供的脚本定期清除SQLT存储库:
    "sqlt/utl/sqlthistpurge.sql
  • How can I expedite "SELECT COUNT(*)" on application Tables?    如何在应用程序表上加速“ SELECT COUNT(*)”?

    If you look at the SQLT log file and identify that most time is spent when SQLT is performing a COUNT(*) in all related application tables, then you can suppress this operation with minimum functionality impact:   如果查看SQLT日志文件并确定SQLT在所有相关应用程序表中执行COUNT(*)时花费的时间最多,则可以以最小的功能影响抑制此操作:​​​​​​​
    EXEC sqltxadmin.sqlt$a.set_param('count_star_threshold', '0');

  • How can I expedite "Taking a snapshot of some Data Dictionary objects"?   如何加快“拍摄某些数据字典对象的快照”?

    A snapshot of some Data Dictionary objects takes between a couple of minutes and up to several hours, depending on the size of the data dictionary. This is the last step of the installation. If killed, it will be automatically executed when XECUTE is first used.   
    根据数据字典的大小,一些数据字典对象的快照需要花费几分钟到几个小时的时间。这是安装的最后一步。如果被杀死,它将在首次使用XECUTE时自动执行。
    To expedite the snapshot time, and with some loss of functionality, you can disable the snapshot of extents by executing these commands connecting as SQLTXPLAIN:   要加快快照时间并​​失去一些功能,可以通过执行以下以SQLTXPLAIN连接的命令来禁用扩展快照:​​​​​​​
    SET SERVEROUT ON;
    EXEC trca$g.set_param('capture_extents', 'N');
    EXEC trca$t.refresh_trca$_dict_from_this;
    If still "Taking a snapshot of some Data Dictionary objects" takes longer than several hours, it can be disabled altogether with significant loss of functionality, by executing these commands connecting as SQLTXPLAIN:   如果仍然花费“几个数据字典对象的快照”的时间超过几个小时,则可以通过执行以下以SQLTXPLAIN连接的命令将其完全禁用,而功能将受到严重影响:​​​​​​​
    SET SERVEROUT ON;  
    EXEC trca$g.set_param('refresh_dict_repository', 'N');
    EXEC trca$t.refresh_trca$_dict_from_this;

  • How do I provide feedback on this SQLT tool?     如何提供有关此SQLT工具的反馈?

    We have various threads available where you can ask questions, get help from others, and share your experiences with SQLTXPLAIN:   我们提供了各种线程,您可以在这些线程中提出问题,寻求他人的帮助以及与您分享使用SQLTXPLAIN的经验:
     

    SQLTXPLAIN (SQLT): General Discussion
    SQLTXPLAIN: SQLT Installation Issues
    SQLTXPLAIN: Dealing with Long Execution Times
    SQLTXPLAIN: Dealing with Errors reported in SQLT MAIN report
    SQLTXPLAIN: Using SQLT on a Stand-by or Dataguard
    SQLTXPLAIN: Interpreting and Understanding SQLT Output


    If you have an open ticket with Oracle Support where SQLT was requested, use that ticket.  You can also add comments to this FAQ or the main SQLT document:
      

    Document 215187.1 SQLT (SQLTXPLAIN) - Tool That Helps To Diagnose SQL Statements Performing Poorly

What further information is available?    还有什么进一步的信息?

  • SQLT Webcasts

    An ongoing series of webcasts on SQLT (and related tools such as SQLHC) are being presented and recorded.
    For details (look under the Oracle Database Section) see:
     

    Document 740966.1 Advisor Webcast Current Schedule


    Recorded Webcasts will be uploaded within a few weeks of completion here:
     

    Document 1456176.1 Oracle Database Advisor Webcast Archives
    Document 740964.1 Advisor Webcast Archived Recordings


    Some past topics have been:
     
    • Database Tuning - Using SQLTXPLAIN To Diagnose SQL Statements Performing Poorly
    • How to create in 5 minutes a SQL Tuning Test Case using SQLTXPLAIN

REFERENCES   参考

NOTE:1470811.1 - How to Use SQLT (SQLTXPLAIN) to Create a Testcase Without Row Data
NOTE:470316.1 - Using Actual System Statistics (Collected CPU and IO information)
NOTE:2146816.1 - How to Generate a SQLT of a SQL Statement That Hangs or Raises an Error
NOTE:740966.1 - Advisor Webcasts: Current Schedule and Archived Recordings
NOTE:243755.1 - Script to produce HTML report with top consumers out of PL/SQL Profiler DBMS_PROFILER data
NOTE:1456176.1 - Oracle Database Advisor Webcast Schedule and Archive recordings
NOTE:740964.1 - Document only contains links to archived recordings, please access document 740966.1 for the latest schedule.
NOTE:215187.1 - All About the SQLT Diagnostic Tool
NOTE:427939.1 - System Statistics: How to gather system stats for a particular batch of work
NOTE:1363422.1 - Automatic Workload Repository (AWR) Reports - Main Information Sources
NOTE:149560.1 - How to Collect and Display System Statistics (CPU and IO) for CBO use
NOTE:153761.1 - System Statistics: Scaling the System to Improve CBO optimizer
NOTE:1366133.1 - SQL Tuning Health-Check Script (SQLHC)
NOTE:1455583.1 - SQL Tuning Health-Check Script (SQLHC) Video
NOTE:1614107.1 - SQLT Usage Instructions
NOTE:1417774.1 - FAQ: SQL Health Check (SQLHC) Frequently Asked Questions
NOTE:1465741.1 - How to Use SQLT (SQLTXPLAIN) to Create a Testcase Containing Application Data 

你可能感兴趣的:(oracle优化学习)