Chat now with support
Chat with Support

SQL Optimizer for Oracle 9.2.2 - User Guide (Simplified Chinese)

SQL Optimizer 介绍

关于 SQL Optimizer for Oracle

SQL Optimizer for Oracle® 可自动执行 SQL 优化进程,并最大限度地提升 SQL 语句的性能。SQL Optimizer for Oracle® 分析、重写和评估位于数据库对象,文件中的 SQL 语句或 Oracle 系统全局区 (SGA) 中的 SQL 语句集合。SQL Optimizer确认有疑问的 SQL 语句后,则会优化 SQL 并提供包括已优化语句的替换代码。

SQL Optimizer还提供一套完整的索引优化和计划变更分析解决方案。它为多条 SQL 语句或一个 SQL 工作负载提供索引建议,模拟索引影响分析并生成 SQL 执行计划替代项。

SQL Optimizer包括以下模块:

优化 SQL

Optimize SQL 包括 SQL 重写模式和计划控制模式。

SQL 重写模式 描述
优化 SQL 语句

使用SQL Optimizer的人工智能引擎,执行 SQL 语法规则并应用 Oracle 优化提示,以创建语义上对等的 SQL语句替代项。此外,您还可以创建用户定义的替代项,以便在您的数据库环境中测试。请参阅联机帮助中的“关于优化 SQL”以了解详情。

测试运行 SQL 替代项

测试运行 SQL 语句替代项以查看执行统计。提供了执行时间,让您可以为您的数据库环境确认最佳的 SQL 语句。请参阅联机帮助的“执行应用场景”以了解详情。

生成索引替代项

分析 SQL 语句语法和数据库结构以提供提高性能的索引替代项。SQL Optimizer使用虚拟索引生成替代项,而不会物理创建数据库索引。请参阅联机帮助中的“关于索引生成”以了解详情。

测试可扩展性 使用 Benchmark Factory™ 模拟潜在工作负载条件,以测试 SQL 语句性能。请参阅联机帮助中的“测试可扩展性”以了解详情。
整合最佳实践 整合常用最佳实践技术,以改善数据库性能。请看联机帮助中的“最佳实践”以了解详情。
计划控制模式 描述
生成执行计划替代项 为您的 SQL 语句生成执行计划替代项,而不更改原始的源代码。请参阅联机帮助中的“生成执行计划替代项”以了解详情。
部署基准

从执行计划替代项创建基准,并部署这些基准以确保最优的数据库性能。请参阅联机帮助中的“部署基准”以了解详情。

优化索引

优化索引分析一个 SQL 工作负载或任何一组 SQL 语句,并确定该工作负载或语句组的最佳索引集。请参阅联机帮助中的“关于优化索引”以了解详情。

批优化

批优化提交文件、数据库对象、SQL 文本或存储于 Foglight Performance Investigator 存储库中的语句,以进行批处理。批优化扫描并提取 SQL 语句,优化语句,测试语句替代项,以找到适合您数据库环境的最佳性能 SQL 语句。请参阅联机帮助中的“关于批优化”以了解详情。

扫描 SQL

扫描 SQL识别源代码中有问题的 SQL 语句和未执行的数据库对象。扫描 SQL接着分析有问题的 SQL 语句,并根据性能级别将其分类。请参阅联机帮助中的“关于扫描 SQL”以了解详情。

检查 SGA

检查 SGA从 Oracle 的 SGA 分析 SQL 语句。您可以指定用于检索 SQL 语句和执行统计的条件,以复查 SQL 性能。请看联机帮助中的“关于检查 SGA”了解详情。

分析影响

使用分析影响通过跟踪 SQL 语句的执行计划和 Oracle 成本变化,评估数据库变更对 SQL 工作负载的影响。您可以运行影响分析,以估计参数变化和新索引的性能影响。您也可以对运行相同应用程序的两个不同数据库进行比较。请参阅联机帮助中的“关于分析影响”了解详情。

管理计划

管理计划管理存储的基准和大纲,以改善 SQL 语句性能。请参阅联机帮助中的“关于管理计划”以了解详情。

SQL 优化工作流程

SQL 优化工作流程确保了您的 SQL 语句在您的数据库环境下以最优状态执行。

过程 描述
识别有问题的 SQL

批优化从您的数据库对象中提取嵌入的 SQL 语句。提取了语句之后,便会分析执行计划操作并识别潜在性能瓶颈。

注:

  • 您可以使用检查 SGA捕获动态 SQL 语句。将捕获的动态 SQL语句保存到一个检查器文件内,然后使用 批优化提取语句。

  • 您也可以使用 扫描 SQL提取嵌入的 SQL语句。
优化 SQL 语句

一旦批优化确定了有疑问的 SQL 语句后,便会自动优化这些语句,并生成替代项及独特的执行计划。通过分析 SQL 语句和数据库结构批优化生成替代项。您也可以在优化进程中使用提示。

注:您也可以在 优化 SQL中使用 SQL 重写模式, 以优化通过扫描 SQL 提取的 SQL 语句。

测试运行 SQL 替代项

批优化生成替代项之后,便将自动测试运行替代项,并为您提供适合您数据库环境的最佳语句。

注:由于批优化自动执行 SQL 优化进程,因此您只会得到此进程生成的最佳替代语句。您可以将语句发送到 优化 SQL以查看所有可用的替代项。

比较 SQL 替代项

批优化将您原始 SQL 语句的 SQL 文本和执行计划与最佳替代项进行比较。

注:如果您将语句发送到 优化 SQL,您可以将原始 SQL 语句与任何可用的语句替代项进行比较。

替换有问题的 SQL 语句 批优化创建了一个脚本,以便您替换原始源代码。
生成索引替代项

除了优化 SQL 语句之外,您还可以为优化 SQL中的语句生成索引替代项。您可以使用 优化索引为一组 SQL 语句或一个 SQL 工作负载生成新的索引。

生成执行计划替代项 您可以使用优化 SQL中的计划控制模式,在不更改原始源代码的情况下为您的 SQL 语句生成执行计划替代项。计划控制模式为您的 SQL语句找到最佳执行计划并将其部署为基准。
分析性能变化 分析影响评估某些变化(例如索引和参数变化)将会对 SQL 语句性能产生什么影响。

 

数据库权限

Oracle 数据库权限用于控制用户的访问。以下列表大致列出了 SQL Optimizer中需要特定 Oracle 数据库权限的功能。

模块

功能

权限

所有模块

跟踪设置选项:

启用收集 Oracle 跟踪统计

要求具有 ALTER SESSIONM 权限。

要求访问以下视图:

SYS.V_$SESSION

SYS.V_$PROCESS

所有模块 检索 DBMS_XPLAN 要求访问 SYS.DBMS_XPLAN 程序包。
所有模块 常规 如果 Oracle 8 或更高版本的 Oracle 初始参数 O7_DICTIONARY_ACCESSIBILITY 设置为“否”,即使您拥有 SELECTANYTABLE权限的话,也无法访问 SYS 下的对象。在这种情况下,您需要具有 SELECT ANY DICTIONARY 权限或 SELECT_CATALOG_ROLE 才能访问 SYS 下的对象。
优化 SQL(SQL 重写) 修改执行 SQL 的会话参数

要求访问 SYS.V_$PARAMETER 视图。

生成虚拟索引 要求 Oracle 8i 或更高版本。
检查 SQL 的现有转换

要求 Oracle 12c 或更高版本。

要求访问 SYS.ALL_SQL_TRANSLATIONS 视图。

创建 SQL 转换配置文件

要求 Oracle 12c 或更高版本。

要求 CREATE SQL TRANSLATION PROFILE 权限。

部署大纲

要求 Oracle 8i 或更高版本。

要求具有 CREATE ANY OUTLINE 和 DROP ANY OUTLINE 权限。

要求访问和更新权限进入以下视图:

OUTLN.OL$HINTS

OUTLN.OL$

OUTLN.OL$NODES

注册 SQL 转换

要求 Oracle 12c 或更高版本。

要求访问 SYS.DBMS_SQL_TRANSLATOR 程序包。

要求访问 SYS.ALL_SQL_TRANSLATION_PROFILES 视图。

优化 SQL(计划控制) 打开数据库连接 要求 Oracle 11g 或更高版本。
检索执行计划,生成计划替代项

要求具有 ADMINISTER SQL MANAGEMENT OBJECT 权限。

要求访问以下程序包:

SYS.DBMS_SQL

SYS.DBMS_SPM

SYS.DBMS_XPLAN

要求访问以下视图:

SYS.DBA_SQL_PLAN_BASELINES

SYS.V_$SQLAREA

SYS.V_$SQLTEXT_WITH_ NEWLINES

优化 SQL批优化

执行方法选项:

根据服务器端设置运行

要求访问 SYS.DBMS_SQL 程序包。
检索运行时间统计

要求访问以下视图:

SYS.V_$MYSTAT

SYS.V_$STATNAME

SYS.V_$PARAMETER

检索实际计划

要求具有 ALTER SESSIONM 权限。

要求访问 SYS.DBMS_XPLAN 程序包。

要求访问以下视图:

SYS.V_$SQLAREA

SYS.V_$ SQL_PLAN_STATISTICS_ALL

SYS.V_$SESSION

从数据库中捕获绑定值

要求 Oracle 10g 或更高版本。

要求访问以下视图:

SYS.V_$SQLAREA

SYS.V_$SQL_BIND_CAPTURE

优化索引 推荐索引

要求 Oracle 8i 或更高版本。

要求访问 SYS.V_$SESSION 视图。

访问 AWR

要求 Oracle 10g 或更高版本。

要求访问以下系统视图:

SYS.DBA_HIST_SNAPSHOT

SYS.DBA_HIST_SQLTEXT

SYS.DBA_HIST_SQLSTAT

显示工作负载负载库的控制信息

要求访问以下系统视图:

SYS.DBA_HIST_WR_CONTROL

显示工作负载库的 SQL 摘要

要求访问以下系统视图:

SYS.DBA_HIST_SQL_SUMMARY

访问 Foglight PI 存储库

要求访问以下数据库表:

QUEST_SC_ACTION_DIM

QUEST_SC_CLIENT_INFO_DIM

QUEST_SC_MODULE_DIM

QUEST_SC_SQL_STAT_FACT

QUEST_SC_SQL_SYNTAX_DIM

QUEST_CTRL_PYRAMID_LEVELS

QUEST_DB_USER_DIM

QUEST_INSTANCE_DIM

QUEST_PROGRAM_DIM

QUEST_TIME_DIM

访问 SGA 要求访问 SYS.V_$SQLAREA 视图。

检查 SGA

要收集的 SQL:从 SQL 区执行 SQL 

要求访问以下视图:

SYS.V_$SQLAREA

SYS.V_$SQLTEXT_WITH_NEWLINES (或 SYS.V_$SQLTEXT,依您的 Oracle 版本而定)

要求访问 Oracle 9 或更高版本中的 SYS.V_$SQL_PLAN 视图。

要收集的 SQL:当前执行的 SQL

要求访问以下视图:

SYS.V_$OPEN_CURSOR

SYS.V_$SESSION

SYS.V_$SQLAREA

SYS.V_$SQLTEXT_WITH_NEWLINES (或 SYS.V_$SQLTEXT,依您的 Oracle 版本而定)

要求访问 Oracle 9 或更高版本中的 SYS.V_$SQL_PLAN 视图。

清除 Oracle 共享池

要求具有 ALTER SYSTEM 权限。

执行计划信息

要求访问 Oracle 9 或更高版本中的 SYS.V_$SQL_PLAN 视图。

按会话监视 要求访问 SYS.V_$SESSION 视图。

管理计划

(基准管理)

打开一个基准管理会话或数据库连接 要求 Oracle 11g 或更高版本。
查看基准 要求访问 SYS.DBA_SQL_PLAN_BASELINES 视图。
查看基准计划

要求访问 SYS.DBA_SQL_PLAN_BASELINES 视图。

要求访问 SYS.DBMS_XPLAN 程序包。

导入、导出及迁移基准

要求具有 ADMINISTER SQL MANAGEMENT OBJECT 和 CREATE TABLE 权限。

要求访问 SYS.DBA_SQL_PLAN_BASELINES 视图。

要求访问 SYS.DBMS_SPM 程序包。

查看和修改基准配置值

获得 Oracle 参数值

OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES

及 OPTIMIZER_USE_SQL_PLAN_BASELINES

要求具有 ADMINISTER SQL MANAGEMENT OBJECT 和 ALTER SYSTEM 权限。

要求访问 SYS.DBMS_SPM 程序包。

要求访问以下视图:

SYS.V_$SYSTEM_PARAMETER

SYS.DBA_SQL_MANAGEMENT_CONFIG

SYS.DBA_DATA_FILES

管理计划

(大纲管理)

打开一个大纲管理会话或数据库连接 要求 Oracle 8i 或更高版本。
查看大纲 要求具有 OUTLN.OL$HINTS(仅限 SELECT)和 OUTLN.OL$(仅限 SELECT)权限。
修改大纲配置值 要求具有 ALTER SYSTEM 和 OUTLN.OL$(仅限 SELECT)权限。
修改大纲

要求具有 DROP ANY OUTLINE 和 ALTER ANY OUTLINE 权限。

要求访问 SYS.OUTLN_PKG 程序包。

分析影响

 

用于索引影响的虚拟索引

要求 Oracle 8i 或更高版本。

要求访问以下系统视图:

SYS.V_$SESSION

修改参数影响的会话参数

要求访问以下系统视图:

SYS.V_$PARAMETER

访问 AWR

要求 Oracle 10g 或更高版本。

要求访问以下系统视图:

SYS.DBA_HIST_SNAPSHOT

SYS.DBA_HIST_SQLTEXT

SYS.DBA_HIST_SQLSTAT

显示工作负载负载库的控制信息

要求访问以下系统视图:

SYS.DBA_HIST_WR_CONTROL

显示工作负载库的 SQL 摘要

要求访问以下系统视图:

SYS.DBA_HIST_SQL_SUMMARY

访问 Foglight PI 存储库

要求访问以下数据库表:

QUEST_SC_ACTION_DIM

QUEST_SC_CLIENT_INFO_DIM

QUEST_SC_MODULE_DIM

QUEST_SC_SQL_STAT_FACT

QUEST_SC_SQL_SYNTAX_DIM

QUEST_CTRL_PYRAMID_LEVELS

QUEST_DB_USER_DIM

QUEST_INSTANCE_DIM

QUEST_PROGRAM_DIM

QUEST_TIME_DIM

访问 SGA

要求访问以下系统视图:

SYS.V_$SQLAREA

显示比较数据库影响的数据库信息

要求访问以下系统视图:

SYS.PRODUCT_COMPONENTS_VERSION

SYS.V_$PARAMETER

SYS.NLS_SESSION_PARAMETERS

SYS.NLS_INSTANCE_PARAMETERS

SYS.NLS_DATABASE_PARAMETERS

SYS.V_$SGAINFO

SYS.V_$DATABASE

SYS.V_$INSTANCE

SYS.V_$STATISTICS_LEVEL

SYS.V_$OPTION

Self Service Tools
Knowledge Base
Notifications & Alerts
Product Support
Software Downloads
Technical Documentation
User Forums
Video Tutorials
RSS Feed
Contact Us
Licensing Assistance
Technical Support
View All
Related Documents

The document was helpful.

Select Rating

I easily found the information I needed.

Select Rating