没有合适的资源?快使用搜索试试~ 我知道了~
SQLServer索引与数据完整性.pdf
需积分: 5 0 下载量 21 浏览量
2024-04-24
14:25:56
上传
评论 1
收藏 1.77MB PDF 举报
温馨提示
试读
55页
sqlserver 索引与数据完整性.pdf
资源推荐
资源详情
资源评论
索引是根据表中一列或若干列按照一定顺序建立的列值与记录行之间的对应
关系表。在数据库系统中建立索引主要有以下作用:
⚫ 快速存取数据;
⚫ 保证数据记录的唯一性;
⚫ 实现表与表之间的参照完整性;
⚫ 在使用ORDER BY、GROUP BY子句进行数据检索时,利用索引可以减少排序和
分组的时间。
1.聚集索引
聚集索引将数据行的键值在表内排序并存储对应的数据记录,使得数据表物
理顺序与索引顺序一致。SQL Server 2008是按B树(BTREE)方式组织聚集索引的,
B树方式构建为包含了多个节点的一棵树。顶部的节点构成了索引的开始点,叫
做根。每个节点中含有索引列的几个值,一个节点中的每个值又都指向另一个节
点或者指向表中的一行,一个节点中的值必须是有序排列的。指向一行的一个节
点叫做叶子页。叶子页本身也是相互连接的,一个叶子页有一个指针指向下一组。
这样,表中的每一行都会在索引中有一个对应值。查询的时候就可以根据索引值
直接找到所在的行。
聚集索引中B树的叶节点存放数据页信息。聚集索引在索引的叶级保存数据。
这意味着不论聚集索引里有表的哪个(或哪些)字段,这些字段都会按顺序保存
在表中。由于存在这种排序,所以每个表只会有一个聚集索引。
由于数据记录按聚集索引键的次序存储,故聚集索引对查找记录很有效。
2.非聚集索引
非聚集索引完全独立于数据行的结构。SQL Server 2008也是按B树方式组织非
聚集索引的,与聚集索引的不同之处在于:非聚集索引B树的叶节点不存放数据页
信息,而是存放非聚集索引的键值,并且每个键值项都有指针指向包含该键值的
数据行。
在非聚集索引内,从索引行指向数据行的指针称为行定位器。行定位器的结
构取决于数据页的存储方式是堆集还是聚集。对于堆集,行定位器是指向行的指
针。对于有聚集索引的表,行定位器是聚集索引键。只有在表上创建聚集索引时,
表内的行才按特定顺序存储,这些行按聚集索引键顺序存储。如果一个表只有非
聚集索引,则它的数据行将按无序的堆集方式存储。
在PXSCJ数据库中,经常要对XSB、KCB、CJB三个表进行查询和更新。为了提
高查询和更新速度,可以考虑对三个表建立如下索引:
(1)对于XSB表,按学号建立主键索引(PRIMARY KEY),组织方式为聚集
索引。
(2)对于KCB表,按课程号建立主键索引,组织方式为聚集索引。
(3)对于KCB表,按课程名建立唯一索引(UNIQUE约束),组织方式为非
聚集索引。
(4)对于CJB表,按学号+课程号建立唯一索引,组织方式为聚集索引。
在SQL Server Management Studio中,既可利用界面方式创建上述索引,也可
以利用T-SQL命令通过查询分析器建立索引。
剩余54页未读,继续阅读
资源评论
shandongwill
- 粉丝: 3728
- 资源: 469
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功