《索引及其应用索引及其应用》由会员分享,可在线阅读,更多相关《索引及其应用索引及其应用(51页珍藏版)》请在金锄头文库上搜索。
1、Copyright2006Copyright2006 College of ITSoft (HZIEE) College of ITSoft (HZIEE) 1Version No: 1.0Version No: 1.0第11章 索引及其应用 索引介绍 索引分类 SQL Server 检索存储的数据的方法 创建索引 设置索引选项 维护索引 用索引优化向导设置索引Copyright2006Copyright2006 College of ITSoft (HZIEE) College of ITSoft (HZIEE) 2Version No: 1.0Version No: 1.0索引介绍 数据存
2、储和访问方法 使用索引的意义及代价 使用索引的指导原则Copyright2006Copyright2006 College of ITSoft (HZIEE) College of ITSoft (HZIEE) 3Version No: 1.0Version No: 1.0数据存储和访问方法 数据的存储方法 数据行存储在数据页中 每个数据页包括 8 KB 信息,八个邻近的页 称为一个扩展盘区 数据行的存储是无序的,数据页也是无序的 数据页并不是通过链表连接 当行插入满的页的时候,数据页拆分 堆是一个表所有数据页的集成Copyright2006Copyright2006 College of I
3、TSoft (HZIEE) College of ITSoft (HZIEE) 4Version No: 1.0Version No: 1.0 数据的访问方法:两种方法 扫描表中所有的数据页称为表扫描n 开始于表的起点n 一页页地扫描表中的所有行n 提取符合查询标准的行 使用索引n 遍历索引树结构,找到查询所请求的列n 只提取符合查询标准的列数据存储和访问方法(续)Copyright2006Copyright2006 College of ITSoft (HZIEE) College of ITSoft (HZIEE) 5Version No: 1.0Version No: 1.0 使用索引的
4、意义 索引在数据库中的作用类似于目录在书籍中的 作用,用来提高查找信息的速度。 使用索引查找数据,无需对整表进行扫描,可 以快速找到所需数据。 使用索引的代价 索引需要占用数据表以外的物理存储空间。 创建索引和维护索引要花费一定的时间。 当对表进行更新操作时,索引需要被重建,这 样降低了数据的维护速度。使用索引的意义和代价Copyright2006Copyright2006 College of ITSoft (HZIEE) College of ITSoft (HZIEE) 6Version No: 1.0Version No: 1.0使用索引的指导原则 创建索引的列 主键 外键或在表联接操
5、作中经常用到的列 在经常查询的字段上最好建立索引 不创建索引的列 很少在查询中被引用 包含较少的惟一值 定义为 text、ntext 或者 image 数据类型的列Copyright2006Copyright2006 College of ITSoft (HZIEE) College of ITSoft (HZIEE) 7Version No: 1.0Version No: 1.0第11章 索引及其应用 索引介绍 索引分类 SQL Server 检索存储的数据的方法 创建索引 设置索引选项 维护索引 用索引优化向导设置索引Copyright2006Copyright2006 College o
6、f ITSoft (HZIEE) College of ITSoft (HZIEE) 8Version No: 1.0Version No: 1.0索引是在数据库表或者视图上创建的对象, 目的是为了加快对表或视图的查询的速度 按存储方式分 聚集索引(clustered) 非聚集索引(nonclustered) 按维护和管理角度分 唯一索引 复合索引 系统自动创建的索引索引分类Copyright2006Copyright2006 College of ITSoft (HZIEE) College of ITSoft (HZIEE) 9Version No: 1.0Version No: 1.0聚
7、集索引根结点索引页数据页 聚集索引的叶节点就是实际的数据页 在数据页中数据按照索引顺序存储Copyright2006Copyright2006 College of ITSoft (HZIEE) College of ITSoft (HZIEE) 10Version No: 1.0Version No: 1.0 聚集索引的一些事实 行的物理位置和行在索引中的位置是相 同的 每个表只能有一个聚集索引 聚集索引的平均大小大约为表大小的5%左右聚集索引(续)Copyright2006Copyright2006 College of ITSoft (HZIEE) College of ITSoft (
8、HZIEE) 11Version No: 1.0Version No: 1.0非聚集索引系部代码指针地址 018 022 035 044 051 067 076 083系部代码系部名称系主任 05社会科学部刘克忠 02经济 管理系刘国峰08建筑系王未起 04基础科学部王彬03传播技术系田建国 07农林系陈瑞修06机电工程系王伟东 01计算机系刘海军“系部代码”索引“系部”表(a)(b)Copyright2006Copyright2006 College of ITSoft (HZIEE) College of ITSoft (HZIEE) 12Version No: 1.0Version No
9、: 1.0 非聚集索引的一些事实和指导原则 若未指定索引类型,则默认为非聚集 索引 叶节点页的次序和表的物理存储次序 不同 每个表最多可以有249个非聚集索引 在非聚集索引创建之前创建聚集索引非聚集索引(续)Copyright2006Copyright2006 College of ITSoft (HZIEE) College of ITSoft (HZIEE) 13Version No: 1.0Version No: 1.0第11章 索引及其应用 索引介绍 索引分类 SQL Server 检索存储的数据的方法 创建索引 设置索引选项 维护索引 用索引优化向导设置索引Copyright2006
10、Copyright2006 College of ITSoft (HZIEE) College of ITSoft (HZIEE) 14Version No: 1.0Version No: 1.0SQL Server 检索存储的数 据的方法 SQL Server 中 sysindexes 表的使用 不使用索引查找行 使用非聚集索引在堆中查找行 在聚集索引中查找行 使用基于聚集索引的非聚集索引查找行Copyright2006Copyright2006 College of ITSoft (HZIEE) College of ITSoft (HZIEE) 15Version No: 1.0Vers
11、ion No: 1.0SQL Server 中 sysindexes 表的使用 sysindexes 表内的页指针定位表和索引的所有页 包括表和索引的重要统计信息 每个表和索引在 sysindexes 表内都有一行记录,通过对象 标识列(id)和索引标识列(indid)惟一标识 indid 列:为不同的目标定位数据页Indid 列值对象类型说明0堆sysindexes 表中的 FirstIAM 列指向表中 数据页页集合的 IAM 页链页链 1聚集索引sysindexes 表中的 root 列指向聚集索引的 平衡树树(B树树)的根节节点 2 250非聚集索引sysindexes 表中的 root
12、 列指向非聚集索引 的平衡树树(B树树)的根节节点 255text、ntext、 image 列sysindexes 表中的 FirstIAM 列指向管理 text、ntext、image页页的 IAM 页链页链Copyright2006Copyright2006 College of ITSoft (HZIEE) College of ITSoft (HZIEE) 16Version No: 1.0Version No: 1.0不使用索引查找行堆 127号扩展盘区idindid = 0First IAMsysindexesIAM128号扩展盘区129号扩展盘区01 02 03 Smith O
13、ta Jones . . .01 02 03 04 Akhtar Funk Smith Martin . . .01 02 03 Rudd White Barr . . . .01 02 03 Con Funk White . . . .01 02 03 Smith Ota Jones . . .01 02 03 04 Akhtar Funk Smith Martin . . .01 02 03 Rudd White Barr . . . .01 02 03 04 05Con Funk White Durkin Lang . .01 02 03 Smith Ota Jones . . .01
14、02 03 04 Akhtar Funk Smith Martin . . .01 02 03 Rudd White Barr . . . .01 02 03 Con Funk White . . . .01 02 03 Smith Ota Jones . . .01 02 03 04 Akhtar Funk Smith Martin . . .01 02 03 Rudd White Barr . . . .01 02 03 04 05Dunn Randall Ota Slichter LaBrie . .01 02 03 Smith Ota Jones . . .01 02 03 04 Akhtar Funk Smith Martin . . .01 02 03 Rudd White Barr . . . .01 02 03 Con Funk White . . . .01 02 03 Smith Ota Jones . . .01 02 03 04 Akhtar Funk Smith Martin . . .01 02 03 Rudd White Barr . . . .01 02 03 Smith Ota Jones . . .01 02 03 04 Akhtar Funk Smith Martin . . .01 02 03 Rudd Whit