《Oracle数据库--索引讲义》由会员分享,可在线阅读,更多相关《Oracle数据库--索引讲义(14页珍藏版)》请在金锄头文库上搜索。
1、第十章索引 重点内容 创建索引 学时 1 2课时 24 05 2020 HANMENG2010 2 本章内容 索引概述B树索引与位图索引创建索引删除索引查看索引 24 05 2020 HANMENG2010 3 1 索引概述 索引是为了加速对表中元组的检索而创建的一种存储结构 通过使用索引加速行的检索 但减慢更新的速度 更新表中每条数据时都需要更新索引 Oracle自动使用 维护索引 24 05 2020 HANMENG2010 4 图1表和索引的关系 24 05 2020 HANMENG2010 5 2 B树索引与位图索引 B树索引 即平衡树索引 是最常用的索引方式 结构类似于二叉树 关键点
2、 索引条目和数据行之间存在一一对应关系 即一条索引条目指向一行 位图索引 适用于数据高度重复并且通常只读的数据 关键点 一个索引条目使用一个位图同时指向多行 24 05 2020 HANMENG2010 6 图2B树索引的逻辑结构 如何查找编号为1016的节点 24 05 2020 HANMENG2010 7 B树索引的特点 树的高度一般在2或3 叶子节点中 每条索引目录指向某一行数据 24 05 2020 HANMENG2010 8 如何在emp表的job列创建一个位图索引 表1位图索引 问题 selectcount fromempwherejob CLERK orjob MANAGER 怎
3、么找到结果 24 05 2020 HANMENG2010 9 3 管理索引 索引使用原则 表中导入数据后再创建索引 否则每次表中插入数据时都必须更新索引 在适当的表和字段上创建索引 如果经常检索的数据少于表中的15 则需要创建索引 限制表中索引的数目 索引越多 在修改表时对索引做出的而修改的工作量越大 24 05 2020 HANMENG2010 10 eg 比较创建索引前后系统的开销 SQL setautotraceonexplain 查询系统的开销 不显示查询结果 SQL selectenamefromempwhereename SMITH Id Rows Bytes Cost CPU T
4、ime 0 1 7 3 0 00 00 01 Id Rows Bytes Cost CPU Time 0 1 7 1 0 00 00 01 SQL createindexidx emponemp ename SQL selectenamefromempwhereename SMITH 24 05 2020 HANMENG2010 11 语法规则 CREATE UNIQUE BITMAP INDEXON 1 创建索引 eg SQL createindexidx emponemp ename 24 05 2020 HANMENG2010 12 其中 UNIQUE表示建立唯一性索引 基于的列值必须唯
5、一 BITMAP表示建立位图索引 ASC DESC升序或降序 默认升序 24 05 2020 HANMENG2010 13 2 删除索引当索引不需要使用时 删除该索引 释放其占用的空间 语法格式 DROPINDEXindex nameeg SQL dropindexidx emp 24 05 2020 HANMENG2010 14 ALL INDEXES 用户可以访问的所有表上的索引 USER INDEXES 用户所拥有表上的索引 3 查询索引信息 INDEX NAMEINDEX TYPEUNIQUENES PK EMPNORMALUNIQUE eg 查询emp表中索引名称 类型和是否唯一性索引 SQL selectindex name index type uniquenessfromuser indexeswheretable name EMP