索引是数据库随机检索的常用手段,它实际上就是记录的关键字与其相应地址的对应表。通过索引可大大提高查询速度。此外,在SQL SERVER中,行的唯一性也是通过建立唯一索引来维护的。
使用索引可以大大提高系统的性能,其具体表现在:
(1)通过创建惟一索引,可以保证数据记录的惟一性。
(2)可以大大加快数据检索速度。
(3)可以加速表与表之间的连接,这一点在实现数据的参照完整性方面有特别的意义。
(4)在使用ORDER BY和GROUP BY子句进行检索数据时,可以显著减少查询中分组和排序的时间。
(5)使用索引可以在检索数据的过程中使用优化隐藏器,提高系统性能。
索引另一面:
如果在表中的每一列都创建索引,也是不明智的体现如下:
第一:创建与维护索引都需要大量时间,而且数据量也会相应增加。
第二:索引也需占用相应的物理空间。
第三:对表中数据进行增加、删除和修改时,索引也要进行动态的维护。
因此,要看表中的需要创建相应的索引。
索引:索引是与表(或视图)关联的页的集合,用于加速从表中检索或者用于强制实施的唯一性。
聚集索引:通过物理上的顺序进行排列而建立索引。
非聚集索引:通过索引表(相当于书的目录)的方法建立索引。
聚集索引
SQL Server数据库中的一个数据文件会以8KB为单位进行分页,页是SQL Server 读、写数据文件的单元。创建一个没有任何索引的表并向其中插入数据时,SQL Server会搜索未被使用的页来存储这些数据。
在SQL Server 中,索引是按 B-Tree 结构进行组织的。索引B-Tree中的每一页称为一个索引结点。 B-Tree的顶端结点称为根节点,索引中的底层结点称为叶结点。根节点与叶节点之间的任何索引级别称为中间级。
在聚集索引中,叶节点包含基础表的数据页。根节点与叶节点包含有索引行的索引页。
聚集索引将数据行的键值在表内排序,存储对应的数据记录,使表的物理顺序与索引顺序一致。如果不是聚集索引,表中各行的物理顺序与键值的逻辑顺序就不会匹配。