《Oracle数据库索引的管理与维护.ppt》由会员分享,可在线阅读,更多相关《Oracle数据库索引的管理与维护.ppt(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、3Oracle数据库索引的管理与维护数据库索引的管理与维护Oracle 数据库应用与设计数据库应用与设计杭州电子科技大学杭州电子科技大学 2目标目标在完成本章学习后,你将掌握下列技能在完成本章学习后,你将掌握下列技能:l 索引基本概念索引基本概念l 四种关键索引四种关键索引l 如何创建索引如何创建索引l 何时使用索引何时使用索引Oracle 数据库应用与设计数据库应用与设计杭州电子科技大学杭州电子科技大学 3本章内容本章内容 l 什么是索引什么是索引l 四种关键索引四种关键索引l 索引的创建索引的创建l 索引的使用索引的使用Oracle 数据库应用与设计数据库应用与设计杭州电子科技大学杭州电子
2、科技大学 4本章内容导航本章内容导航 l 什么是索引什么是索引l 四种关键索引四种关键索引l 索引的创建索引的创建l 索引的使用索引的使用Oracle 数据库应用与设计数据库应用与设计杭州电子科技大学杭州电子科技大学 5什么是索引什么是索引索引索引(indexindex)索引之于表数据如同目录之于一本书。优化SQL提高DB性能 索引Oracle 数据库应用与设计数据库应用与设计杭州电子科技大学杭州电子科技大学 6查找方法查找方法索引和非索引使用了索引和非索引的两种方法,极大影响性能。非索引的全表搜索索引的rowidOracle 数据库应用与设计数据库应用与设计杭州电子科技大学杭州电子科技大学
3、7何为索引何为索引l索引是与表关联的可选结构。通过创建索引可索引是与表关联的可选结构。通过创建索引可提高数据更新和检索的性能提高数据更新和检索的性能。Oracle 索引提供索引提供到数据行的直接访问路径。到数据行的直接访问路径。l可以对表的一个或多个列创建索引。创建索引可以对表的一个或多个列创建索引。创建索引后,后,Oracle 服务器会自动维护和使用索引。表服务器会自动维护和使用索引。表数据的更新(如添加新行、更新行或删除行)数据的更新(如添加新行、更新行或删除行)会自动传播到所有相关的索引,这些对用户来会自动传播到所有相关的索引,这些对用户来说是完全透明的。说是完全透明的。Oracle 数
4、据库应用与设计数据库应用与设计杭州电子科技大学杭州电子科技大学 8索引工作原理索引工作原理22 22 索引索引 表表键键行行指针指针 WHERE key=22 Oracle 数据库应用与设计数据库应用与设计杭州电子科技大学杭州电子科技大学 9本章内容导航本章内容导航 l 什么是索引什么是索引l 四种关键索引四种关键索引l 索引的创建索引的创建l 索引的使用索引的使用Oracle 数据库应用与设计数据库应用与设计杭州电子科技大学杭州电子科技大学 10四种关键索引四种关键索引四种关键索四种关键索四种关键索四种关键索引引引引B树索引树索引位图索引位图索引反向键索引反向键索引基于函数的索引基于函数的索
5、引其它索引(其它索引(interMedia全文索引和降序索引全文索引和降序索引)Oracle 数据库应用与设计数据库应用与设计杭州电子科技大学杭州电子科技大学 11B树索引树索引索引条目头索引条目头 键列长度键列长度 键列值键列值 ROWID 根根 分支分支 叶叶 索引条目索引条目 B树索引采用二进制树的形式,它是默认的索引类型。树索引采用二进制树的形式,它是默认的索引类型。索引的顶层为根,它包含索引的顶层为根,它包含指向索引中下一层次的条指向索引中下一层次的条目。下一层次为分支块,目。下一层次为分支块,它又指向位于索引中下一它又指向位于索引中下一层次的块。位于最低层次层次的块。位于最低层次的
6、是叶节点,它包含指向的是叶节点,它包含指向表行的索引条目。叶块双表行的索引条目。叶块双向相互关联,这便于按键向相互关联,这便于按键值升序或降序扫描索引。值升序或降序扫描索引。Oracle 数据库应用与设计数据库应用与设计杭州电子科技大学杭州电子科技大学 12B树索引树索引 lB 树索引的键值存储在平衡树(树索引的键值存储在平衡树(B 树)中,树)中,这样可以进行快速的二进制搜索这样可以进行快速的二进制搜索l搜索数据所经过的索引层次是相同的搜索数据所经过的索引层次是相同的l各叶子节点中包括的数据有索引列的值和数各叶子节点中包括的数据有索引列的值和数据表中对应的据表中对应的ROWIDOracle
7、数据库应用与设计数据库应用与设计杭州电子科技大学杭州电子科技大学 13位图索引位图索引 键键 开始开始ROWID 结束结束ROWID 位图位图 表表 索引索引 块块10块块11块块12文件文件3注意:要使用位注意:要使用位图索引必须是图索引必须是oracle的企业版的企业版Oracle 数据库应用与设计数据库应用与设计杭州电子科技大学杭州电子科技大学 14位图索引位图索引 l表具有数百万行且键列的基数较低时使用,表具有数百万行且键列的基数较低时使用,也就是列的独特值极少时。例如,对于护照也就是列的独特值极少时。例如,对于护照记录表中的性别和婚姻状况列记录表中的性别和婚姻状况列l经常使用与经常使
8、用与 OR 运算符有关的多个运算符有关的多个 WHERE 条条件的组合进行查询时使用件的组合进行查询时使用l键列上存在只读活动或较少更新活动时使用键列上存在只读活动或较少更新活动时使用Oracle 数据库应用与设计数据库应用与设计杭州电子科技大学杭州电子科技大学 15反向键索引反向键索引 l特殊类型的特殊类型的B树索引树索引l对有序数进行特殊处理,使得其适合对有序数进行特殊处理,使得其适合B树分布树分布l如果用户选择使用反转键索引,那么只需在通如果用户选择使用反转键索引,那么只需在通常的索引语句末尾添加一个关键字常的索引语句末尾添加一个关键字reverse即可即可Oracle 数据库应用与设计
9、数据库应用与设计杭州电子科技大学杭州电子科技大学 16基于函数的索引基于函数的索引 l基于一个应用于表中数据的函数(基于一个应用于表中数据的函数(BFI,Based Function Index)l可以不改变现有程序的可以不改变现有程序的SQL语句语句 lcreate index 索引名索引名 on 表名表名(函数函数(列名列名);Oracle 数据库应用与设计数据库应用与设计杭州电子科技大学杭州电子科技大学 17本章内容导航本章内容导航 l 什么是索引什么是索引l 四种关键索引四种关键索引l 索引的创建索引的创建l 索引的使用索引的使用Oracle 数据库应用与设计数据库应用与设计杭州电子科
10、技大学杭州电子科技大学 18索引的创建索引的创建CREATE INDEX my_index ONemployees(last_name,first_name);Oracle 数据库应用与设计数据库应用与设计杭州电子科技大学杭州电子科技大学 19B树索引的创建语法树索引的创建语法B B树索引树索引默认情况下,系统为主键创建B树索引CREATEINDEXhdu.unitname_idxONhdu.G_unitnum(unitname););必须有hdu的CREATE INDEX权限Oracle 数据库应用与设计数据库应用与设计杭州电子科技大学杭州电子科技大学 20位图索引的创建语法位图索引的创建语
11、法位图索引位图索引使用BITMAP关键字CREATEbitmapINDEXhdu.unitname_idxONhdu.G_unitnum(unitname););位图索引非唯一索引Oracle 数据库应用与设计数据库应用与设计杭州电子科技大学杭州电子科技大学 21本章内容导航本章内容导航 l 什么是索引什么是索引l 四种关键索引四种关键索引l 索引的创建索引的创建l 索引的使用索引的使用Oracle 数据库应用与设计数据库应用与设计杭州电子科技大学杭州电子科技大学 22索引的使用索引的使用 l优化查询,当查询超过优化查询,当查询超过10000行时。行时。l加快检索的速度,多表连接查询时。加快检索的速度,多表连接查询时。l防止全表扫描。防止全表扫描。l理清理清select的内部关系,再定夺索引,最后的内部关系,再定夺索引,最后量身定制必要的索引量身定制必要的索引Oracle 数据库应用与设计数据库应用与设计杭州电子科技大学杭州电子科技大学 23本章内容小结本章内容小结 l 索引基本概念(建立索引的目的)索引基本概念(建立索引的目的)l 四种关键索引四种关键索引l 如何创建索引(语句)如何创建索引(语句)l 何时使用索引何时使用索引
限制150内