问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Oracle什么时候会使用跳跃式索引扫描

发布网友 发布时间:2022-04-08 07:28

我来回答

2个回答

懂视网 时间:2022-04-08 11:50

  • 索引范围扫描:索引范围扫描,扫描索引高度-2个分支快,要扫描N多叶子块,取决于where条件,索引范围扫描是单块读,因为物理存储是不连续的。select * from test where id<=1000;访问路径:ROOT -B1 -L1 -L7

     

  •  

     

    索引是排序的,从左到右升序排,最左最小,最右做大,索引默认从左向右扫描,也可以加hint倒着扫描:

    SQL> select /*+ index_desc(test) */*from test where object_id<=20;
    19 rows selected.
    
    Execution Plan
    ----------------------------------------------------------
    Plan hash value: 1069979465
    ---------------------------------------------------------------------------------------
    | Id  | Operation       | Name   | Rows  | Bytes | Cost (%CPU)| Time     |
    ---------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT      |       |    19 |  3933 |     3 (0)| 00:00:01 |
    |   1 |  TABLE ACCESS BY INDEX ROWID | TEST   |    19 |  3933 |     3 (0)| 00:00:01 |
    |*  2 |   INDEX RANGE SCAN DESCENDING| IDX_ID |    19 |       |     2 (0)| 00:00:01 |
    ---------------------------------------------------------------------------------------

    3.索引的叶子块只存rowid和列的键值,比表的数据块存的更多的值,

    select object_id from test where object_id<100;
    select object_id from test where object_id<1000

    性能是一样的,索引扫描最大问题在于回表,如果回表再过滤,就最坑爹了,错误的INDEX RANGE SCAN,返回数据很多和大量回表

    4.反键索引,

    如果用sequence作为主键,如果insert数据,会不断更新右边的叶子块,dml操作,同一个块,同时只有一个进程去持有,CBC持有,latch: cache buffers chains,在高并发的insert环境中,sequence主键很容易产生热点块,解决办法,把主键处理成随机的,比如手机号或者***号,如果已经用sequence,可用反转索引把叶子块打乱来解决。另外一种解决办法:sid+sequence+pid,反键索引多范围扫描影响大。

    5. INDEX SKIP SCAN 索引跳跃扫描。单块读 只可能发生在组合索引上,引导列(组合索引第一列)没有包含在where条件中,并且引导列基数很低。INDEX SKIP SCAN 一般来说只会返回少量数据,如果返回大量数据,说明该执 行计划可能有问题,也就是说索引建立不对。等待事件:db file sequential read HINT: INDEX_SS(表名/别名 索引名)

     

    Oracle索引扫描

    标签:orace索引

    热心网友 时间:2022-04-08 08:58

    例如表有索引index(a,b,c),当查询条件为
    where b=?的时候,可能会使用到索引index(a,b,c)
    如,执行计划中出现如下计划:
    INDEX (SKIP SCAN) OF 'TEST_IDX' (NON-UNIQUE)
    Oracle的优化器(这里指的是CBO)能对查询应用Index Skip Scans至少要有几个条件:
    1 优化器认为是合适的。
    2 索引中的前导列的唯一值的数量能满足一定的条件(如重复值很多)。
    3 优化器要知道前导列的值分布(通过分析/统计表得到)。
    4 合适的SQL语句
    等。
    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    苏打地牢500层boss怎么打 苏打地牢500层boss打法攻略 隐形眼镜用水龙头水泡着可以么 ...还有些痒痒的 越来越多的趋势 请问这是什么原因引起的 长安univ智电idd改无线充怎么改的 山药泥火龙果的做法 铜合金好还是纯铜好 铜合金和铜哪个好 合金为什么比铜要好 合金和铜哪个好 音乐风格要素主要包括 文件管理的最近里面的QQ小视频删不绝怎么办 QQ拍视频旁边一栏里面的视频怎么删不掉 看全季酒店如何玩转微信营销 酒店移动官网对酒店微信营销有什么帮助? 酒店应该怎样进行微信营销 酒店微信营销是怎么出现的又是怎么一步一步发展起来的 酒店怎么做微信营销呀 酒店是如何做微信营销的 微信营销对酒店的好处有哪些方面 苹果笔记本电脑。双系统。用久windows7想用回苹果系统出现蓝屏怎么办 苹果电脑蓝屏处理 激光治疗近视有副作用吗?会反弹吗? 高度近视的人生活中会有哪些不便? 视力很差是怎样的体验? 马赛克眼镜送的那个雪茄对身体有害吗? 作为一个近视的人有哪些痛苦体验? 有没有手机软件可以p黑色马赛克眼镜,还有金链子,叼雪茄的 要在图片上用马赛克把眼睛遮住,在photoshop中如何实现? 电焊时带马赛克眼镜电焊的光还有伤害吗? 哪家的孩子用的亿视康控度眼镜,有效果吗? 为什么QQ空间里分享的视频删不掉? 傅作义有几个儿女 《南瓜马车不要走》txt下载在线阅读全文,求百度网盘云资源 四川佳诚宇业科技有限公司怎么样? 上海英硕文化传播有限公司怎么样? 傅亨的妻子 哪个电视剧里有个人男主叫方元女主叫如歌 傅亨的介绍 交媾怎么读? 换季手蜕皮了怎么办呢? 电视剧我的爱情撞上战争谁是大反派 电视剧我的爱情撞上战争中北野的扮演者是谁 青岛市田家村刘富春怎样了? 我的爱情撞上战争电视剧余霞丈夫是谁 手脱皮应该怎么保养? listbox与edit如何连接在MATLAB中,要实现选中listbox中的某一项,使其可以显示在edit中 冬季到了,手指脱皮很严重,怎么办啊? 求南瓜马车不要走txt长安夜雨 南瓜马车不要走txt 长安夜雨的 骆驼祥子全书内容概括50字以内