Oracle CBO优化模式中索引访问方法详解
197 浏览量
更新于2024-08-28
收藏 91KB PDF 举报
Oracle CBO 优化模式中的 5 种索引访问方法浅析
Oracle 的 Cost-Based Optimizer(CBO)是一种自适应优化器,它可以根据不同的数据分布和查询模式选择最优的执行计划。索引访问方法是 CBO 中的一种重要优化策略,本文将对 CBO 优化模式中的 5 种索引访问方法进行浅析。
索引唯一扫描(INDEX UNIQUE SCAN)
索引唯一扫描是一种高效的索引访问方法,它可以快速地定位到特定的数据行。这种方法通常在查询谓语中使用 UNIQUE 和 PRIMARY KEY 索引的列作为条件时会被选用。索引唯一扫描的特点是对于某个特定的值只返回一行数据,访问的高度总是索引的高度加一,除了某些特殊的情况,如另外存储的 LOB 对象。
例如,在查询谓语中使用 employee_id = 100 时,Oracle 会选择索引唯一扫描,因为 employee_id 是一列 PRIMARY KEY 索引。执行计划如下所示:
Execution Plan
———————————————————-
Plan hash value: 1833546154
———————————————————————————————
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
———————————————————————————————
| 0 | SELECT STATEMENT | | 1 | 69 | 1 (0)| 00:00:01 |
| 1 | TABLE ACCESS BY INDEX ROWID | EMPLOYEES | 1 | 69 | 1 (0)| 00:00:01 |
|* 2 | INDEX UNIQUE SCAN | EMP_EMP_ID_PK | 1 | | 0 (0)| 00:00:01 |
———————————————————————————————
Predicate Information (identified by operation id):
2 - access("EMPLOYEE_ID"=100)
索引范围扫描(INDEX RANGE SCAN)
索引范围扫描是一种常用的索引访问方法,通常在查询谓语中包含范围条件时会被选用。索引可以是唯一的亦可以是不唯一的。所指定的条件可以是 (<, >, LIKE, BETWEEN, =) 等运算符,但是使用 LIKE 时,如果使用了通配符%,极有可能就不会使用范围扫描,因为条件过于宽泛了。
例如,在查询谓语中使用 employee_id > 100 AND employee_id < 200 时,Oracle 会选择索引范围扫描。
索引全扫描(INDEX FULL SCAN)
索引全扫描是一种索引访问方法,它会扫描整个索引以便获取所有的数据。这种方法通常在查询谓语中没有指定任何条件时会被选用。索引全扫描的特点是访问的高度总是索引的高度加一,除了某些特殊的情况,如另外存储的 LOB 对象。
索引跳跃扫描(INDEX SKIP SCAN)
索引跳跃扫描是一种索引访问方法,它可以跳过某些索引块以便快速地定位到特定的数据行。这种方法通常在查询谓语中使用了 NOT EXISTS 或 NOT IN 语句时会被选用。
索引快速全扫描(INDEX FAST FULL SCAN)
索引快速全扫描是一种索引访问方法,它可以快速地扫描整个索引以便获取所有的数据。这种方法通常在查询谓语中没有指定任何条件时会被选用。
Oracle CBO 优化模式中的 5 种索引访问方法各有其特点和应用场景,了解这些方法可以帮助我们更好地优化 SQL 查询语句,提高查询效率。
250 浏览量
204 浏览量
160 浏览量
点击了解资源详情
2021-09-22 上传
176 浏览量
点击了解资源详情
weixin_38610815
- 粉丝: 4
- 资源: 870
最新资源
- STM32F103 4路超声波
- Plot Superquadratic Surfaces:这是一对用于绘制一般超椭圆体和超环面的函数-matlab开发
- JQueryRevision
- flat-view
- 行业分类-设备装置-一种接枝SiOsub2sub粒子簇取向增强涤纶纤维的制备方法.zip
- grpc_stream-medium
- 移远调试+升级工具包.rar
- LiterateTest.jl
- 行业分类-设备装置-一种接触式密封倒置型气波制冷机.zip
- next-redux-toolkit-auth
- 6ES7215-1AG40-0XB0_V04.04.00.zip
- sentry-heroku:在 heroku 上快速简单地设置哨兵 7 服务器
- ptwaters87.github.io:项目网站
- 卡斯巴赫特
- 行业分类-设备装置-一种接触冷感性聚酯纤维织物.zip
- pycocotools.zip