优化程序模式 • 基于规则的: – 使用 --- 套等级系统 – 语法驱动和数据字典驱动 • 基于成本的: – 选择成本最低的路径 – 统计数据驱动 基于规则的优化 在基于规则的优化中通过检查查询服务器进程选择它访问数据的路径该 优化程序有一整套对访问路径进行排序的规则有经验的 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优化程序模式
最新推荐文章于 2024-06-07 16:44:00 发布