DISPLAY_AWR
DISPLAY_AWR 函数显示存储在 AWR 历史数据的执行计划。
提示:要正常调用 DISPLAY_AWR 参数,必须要有对视图 DBA_HIST_SQL_PLAN 和
DBA_HIST_SQLTEXT 的 SELECT 权限。
参数描述:
o SQL_ID:需要被显示执行计划的 SQL 语句的 ID。该 ID 可以从 DBA_HIST_SQL_PLAN.SQL_ID
或 DBA_HIST_SQLTEXT.SQL_ID 获得,该参数必须指定非空值,没有默认值;
o PLAN_HASH_VALUE:执行计划的哈希值。我们之前提到,每个执行计划都有一个哈希。通过该值,可以显示 SQL 语句的特定的执行计划。如果未指定或为 NULL,则会显示语句的所有执行计划;
o DB_ID:指定显示哪个数据库的执行计划,默认为本地数据库 ID。
提示:我们可以将其他数据库的 AWR 数据导入本地数据库进行分析。
o FORMAT:格式化控制字符串。DISPLAY_AWR 函数的格式化选项与 DISPLAY 的选项相同。
示例:


DISPLAY_SQLSET
DISPLAY_SQLSET 函数显示存储在一个 SQL 调优集中的语句的执行计划。
提示:DBMS_SQLTUNE 是 Oracle 10g 中提供的一个自动调优的工具包,它可以对单条语句进行调优, 也可对一组 SQL 集进行调优,我们在后面章节会做详细介绍。
参数描述:
o SQLSET_NAME:SQL 集的名称。每个 SQL 集都有一个单独的名称(可以是创建时用户指定的,也可以是系统自动生成的),我们需要指定从哪个 SQL 集中读取和显示语句的执行计划,该参数没有默认值,必须指定;
o SQL_ID:需要被显示执行计划的 SQL 语句的 ID。该 ID 可以从
USER/DBA/ALL_SQLSET_PLANS.SQL_ID 获得,该参数必须指定非空值,没有默认值;
o PLAN_HASH_VALUE:执行计划的哈希值。如果未指定或为 NULL,则会显示语句的所有执行计划;
o FORMAT:格式化控制字符串。DISPLAY_SQLSET 函数的格式化选项与 DISPLAY 的选项相同。
o SQLSET_OWNER:SQL 集的所有者,默认为当前用户名。
示例:


DISPLAY_SQL_PLAN_BASELINE
DISPLAY_SQL_PLAN_BASELINE 函数显示存储在数据字典当中的 SQL 执行计划基线的计划。
提示:SQL 执行计划管理是 Oracle 11g 中提供的一个管理 SQL 语句的一组执行计划(执行计划基线,
Plan Baseline)、保证语句运行性能稳定性的特性。
参数描述:
o SQL_HANDLE:执行计划基线所属 SQL 的句柄名称,它由 Oracle 在创建或载入执行计划到基线当中时自动生成,可以通过视图 dba_sql_plan_baselines 查询,默认为 NULL;
o PLAN_NAME:执行计划基线某个执行计划的名称,它由 Oracle 在创建或载入执行计划到基线当中时自动生成,可以通过视图 dba_sql_plan_baselines 查询,默认为 NULL;
o FORMAT:格式化控制字符串。DISPLAY_SQLSET 函数的格式化选项与 DISPLAY 的选项相同。
当 SQL_HANDLE 和 PLAN_NAME 都为空时,显示所有基线数据中的全部执行计划。
示例:


AUTOTRACE
AUTOTRACE 是 Oracle 自带的客户端工具 SQLPlus 的一个特性。启用 AutoTrace 后,SQLPLus
会自动收集执行过的语句的执行计划、性能统计数据等,并在语句执行结束后显示在 SQL*Plus 中。要使用 AUTOTRACE,我们需要先做以下准备。
用 DBA 用户创建角色 PLUSTRCE,并将该角色赋予用户。
在执行语句之前,在 SQL*Plus 中打开自动跟踪选项。你可以在打开 AUTOTRACE 时选择不同选项,以控制输出的内容。
• SET AUTOTRACE ON
打开 AUTOTRACE,并输出所有内容,包括语句本身的查询结果,执行计划,以及性能统计
数据。
• SET AUTOTRACE ON EXPLAIN
打开 AUTOTRACE,并输出语句本身的查询结果和执行计划,不输出性能统计数据。
• SET AUTOTRACE ON STATISTICS
打开 AUTOTRACE,并输出语句本身的查询结果和性能统计数据,不输出执行计划。
• SET AUTOTRACE TRACE
打开 AUTOTRACE,并输出执行计划和性能统计数据,不输出语句本身的查询结果。
• SET AUTOTRACE TRACE EXPLAIN
打开 AUTOTRACE,并输出执行计划,不输出语句本身的查询结果和性能统计数据。
• SET AUTOTRACE TRACE STATISTICS
打开 AUTOTRACE,并输出性能统计数据,不输出语句本身的查询结果和执行计划。
• SET AUTOTRACE OFF
关闭 AUTOTRACE

SQL_TRACE(或者 10046 跟踪事件)
SQL_TRACE 跟踪的内容由三个部分组成:执行语句时造成的等待事件(Waits);执行语句时产生的性能统计数据;以及语句的执行计划和绑定变量信息。这里仅介绍执行计划相关部分。
在会话或者系统中启动 SQL 跟踪后,会话结束或者关闭 SQL 跟踪之前,会话(或系统)中所有 运行的语句的性能统计数据都会记录到 UDUMP 目录(user_dump_dest 参数指定)下一个根据文件中(未指定标识字符串 tracefile_identifier 的情况下,文件名格式为<ORACLE_SID>ORA


OPTIMIZER_TRACE(或者跟踪 10053 事件)
OPTIMIZER_TRACE(10053 事件可以跟踪优化器生成语句执行计划的整个过程,并且,在 11g 中还可以通过设置事件来指定仅跟踪一个或多个组件的信息。同样,其跟踪内容都会写入 UDMP 目录下的一个跟踪文件中,文件的命名方式和 SQL_TRACE 产生的跟踪文件的命名方式相同。





