- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
几种索引扫描方式
几种索引扫描方式
1)索引唯一扫描 如果查询时是通过unique或primary key约束来保证只返回一条数据,那么优化器就会选择索引唯一扫描,这是访问一条数据的最快方式。
2)索引范围扫描
索引键非唯一,当遇到如下条件时会使用索引范围扫描:
1.col=:b1
2.col:b1
3.col:b1
3)索引降序范围扫描
与2)中的情况相同,只不过2)默认是安装 升序进行查找的,而这里是按降序进行查找,如:
select line_item_id,order_id from order_items where order_id:b1 order by order_id desc;
4) 跳跃式索引(Skip Scan Index)。当表有一个复合索引,而在查询中有除了索引中第一列的其他列作为条件,并且优化器模式为CBO,这时候查询计划就有可能使用到SS,另外通 过使用提示index_ss(CBO下)来强制使用SS。跳跃式索引使复合索引从逻辑上分为几个小的子索引,分的条件就是复合索引列的第一个字段,可以这 样理解,Oracle 将索引从逻辑上划分为a.num_distinct个子索引,每次对一个子索引进行扫描。因此SS的索引扫描成本为a.num_distinct.而且使用SS的条件需要第一列的distinct num要足够小
5)index full scan和Index Fast Full Scan(全索引扫描和快速全索引扫描)
index full scan和index fast full scan是指同样的东西吗?答案是no。两者虽然从字面上看起来差不多,但是实现的机制完全不同。我们一起来看看两者的区别在哪里?
首先来看一下IFS,FFS能用在哪里:在一句sql 中,如果我们想搜索的列都包含在索引里面的话,那么index full scan 和 index fast full scan 都可以被采用代替full table scan。比如以下语句:
SQL CREATE TABLE TEST AS SELECT * FROM dba_objects WHERE 0=1;
SQL CREATE INDEX ind_test_id ON TEST(object_id);
SQL INSERT INTO TEST
SELECT *
FROM dba_objects
WHERE object_id IS NOT NULL AND object_id 10000
ORDER BY object_id DESC;
17837 rows created.
SQL analyze table test compute statistics for table for all columns for all indexes;
Table analyzed.
SQL set autotrace trace;
SQL select object_id from test;
17837 rows selected.
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT ptimizer=CHOOSE (Cost=68 Card=17837 Bytes=71348)
1 0 TABLE ACCESS (FULL) OF TEST (Cost=68 Card=17837 Bytes=71348)
这时候Oracle 会选择全表扫描,因为 object_id 列默认是可以为null的,来修改成 not null:
SQLalter table test modify(object_id not null);
SQL select object_id from test;
17837 rows selected.
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT ptimizer=CHOOSE (Cost=11 Card=17837 Bytes=71348)
1 0 INDEX (FAST FULL SCAN) OF IND_TEST_ID (NON-UNIQUE) (Cost=11 Card=17837 Bytes=71348)
当然我们也可以使用index
您可能关注的文档
最近下载
- 龙湖地产项目全周期运营管理.pptx
- XF 1261-2015 长管空气呼吸器.pdf
- [模版]民事诉讼状(侵害集体经济组织成员权益纠纷).doc VIP
- 中国工业打印机头行业市场占有率及投资前景预测分析报告.pdf VIP
- 某某物流公司风险分级管控和隐患排查治理指导手册.pdf VIP
- 董卿朗诵《生命》原文(通用3篇).docx
- 江门市检察机关招聘劳动合同制司法辅助人员笔试试卷及答案2022.docx VIP
- 2023磷酸铁锂电池储能用液冷机组技术规范.docx
- 限禁用物质管理标准规定.pdf
- 2023广东江门市检察机关招聘劳动合同制司法辅助人员(32人)笔试备考试题及答案解析.docx VIP
文档评论(0)