优化程序模式
• 基于规则的:
– 使用 --- 套等级系统
– 语法驱动和数据字典驱动
• 基于成本的:
– 选择成本最低的路径
– 统计数据驱动
基于规则的优化
在基于规则的优化中通过检查查询服务器进程选择它访问数据的路径该
优化程序有一整套对访问路径进行排序的规则有经验的 Oracle 开发人员往往
十分了解这些规则并可据此优化他们的 SQL
基于规则的优化程序是通过语法实现的因为它联合使用语句语法与有关数据
结构的数据字典信息以确定将使用哪一个执行计划支持该优化程序模式是
为了与 Oracle 服务器的早期版本向后兼容
基于成本的优化
在基于成本的模式中优化程序检查每个语句并识别所有可能的访问数据路
径然后它计算每个访问路径的资源成本并且选择花费最低的一个成本核
算的主要依据是逻辑读取数
设置优化程序模式
• 例程级别:
optimizer_mode =
{choose|rule|first_rows|all_rows}
• 会话级别:
alter session set optimizer_mode =
{choose|rule|first_rows|all_rows}
• 语句级别: 使用提示
会话级别上的 OPTIMIZER_MODE 选项
开发人员可以使用 ALTER SESSION 命令设置该选项
SQL> ALTER SESSION SET OPTIMIZER_MODE = value
注由于向后兼容性原因仍支持 ALTER SESSION 命令的
OPTIMIZER_GOAL 选项以之作为 OPTIMIZER_MODE 选项的替代
优化程序提示
也可以在 SQL 语句中使用提示来影响优化程序
可以在语句中编写提示代码如下所示
SQL> SELECT /*+ FIRST_ROWS */
2 *
3 FROM scott.emp;
能够影响优化程序模式的优化程序提示为 RULE FIRST_ROWS 和
ALL_ROWS
注所有可用提示的列表请参阅 Oracle8i Server Tuning, Release 8.1 手册
oracle优化程序模式
最新推荐文章于 2026-02-10 06:47:47 发布

1175

被折叠的 条评论
为什么被折叠?



