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包括以下模块:
Optimize SQL 包括 SQL 重写模式和计划控制模式。
SQL 重写模式 | 描述 |
优化 SQL 语句 |
使用SQL Optimizer的人工智能引擎,执行 SQL 语法规则并应用 Oracle 优化提示,以创建语义上对等的 SQL语句替代项。此外,您还可以创建用户定义的替代项,以便在您的数据库环境中测试。 |
测试运行 SQL 替代项 |
测试运行 SQL 语句替代项以查看执行统计。提供了执行时间,让您可以为您的数据库环境确认最佳的 SQL 语句。 |
生成索引替代项 |
分析 SQL 语句语法和数据库结构以提供提高性能的索引替代项。SQL Optimizer使用虚拟索引生成替代项,而不会物理创建数据库索引。 |
测试可扩展性 | 使用 Benchmark Factory™ 模拟潜在工作负载条件,以测试 SQL 语句性能。 |
整合最佳实践 | 整合常用最佳实践技术,以改善数据库性能。 |
计划控制模式 | 描述 |
生成执行计划替代项 | 为您的 SQL 语句生成执行计划替代项,而不更改原始的源代码。 |
部署基准 |
从执行计划替代项创建基准,并部署这些基准以确保最优的数据库性能。 |
优化索引分析一个 SQL 工作负载或任何一组 SQL 语句,并确定该工作负载或语句组的最佳索引集。
批优化提交文件、数据库对象、SQL 文本或存储于 Foglight Performance Investigator 存储库中的语句,以进行批处理。批优化扫描并提取 SQL 语句,优化语句,测试语句替代项,以找到适合您数据库环境的最佳性能 SQL 语句。
扫描 SQL识别源代码中有问题的 SQL 语句和未执行的数据库对象。扫描 SQL接着分析有问题的 SQL 语句,并根据性能级别将其分类。
检查 SGA从 Oracle 的 SGA 分析 SQL 语句。您可以指定用于检索 SQL 语句和执行统计的条件,以复查 SQL 性能。
使用分析影响通过跟踪 SQL 语句的执行计划和 Oracle 成本变化,评估数据库变更对 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 语句生成执行计划替代项。计划控制模式为您的 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 | |
优化 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 或更高版本。 |
访问 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_$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 |
© 2025 Quest Software Inc. ALL RIGHTS RESERVED. 使用条款 隐私 Cookie Preference Center