非聚簇索引的叶级页的顺序不同于表中数据的物理顺序 。
这些关键值在叶级中以升序维持 。
当非聚簇索引创建在有聚簇索引的表上的时候,系统使用索引页中的指向聚簇索引的聚簇键 。
聚簇键存储了数据的位置信息 。
如果某一个表有聚簇索引,那么非聚簇 索引的叶级包含了映射到聚簇键的聚簇键值,而不是映射到物理的行标识符 。
当系统访问有非聚簇索引的表中数据时,并且这种非聚簇索引创建在聚簇索引上,那么 它首先从非聚簇索引来找到指向聚簇索引的指针,然后通过使用聚簇索引来找到数据 。
当需要以多种方式检索数据时,非聚簇索引是非常有用的 。
当创建非聚簇索引时,要考虑这些情况:在缺省情况下,所创建的索引是非聚簇索引;在每一个表上面,可以创建不多于249个非聚簇索引,而聚簇索引最多只能有一个 。
系统如何访问表中的数据
一般地,系统访问数据库中的数据,可以使用两种方法:表扫描和索引查找 。
第一种方法是表扫描,就是指系统将指针放置在该表的表头数据所在的数据页上,然后 按照数据页的排列顺序,一页一页地从前向后扫描该表数据所占有的全部数据页,直至扫描完表中的全部记录 。
在扫描时,如果找到符合查询条件的记录,那么就将 这条记录挑选出来 。
最后,将全部挑选出来符合查询语句条件的记录显示出来 。
第二种方法是使用索引查找 。
索引是一种树状结构,其中存储了关键字和指向包含关 键字所在记录的数据页的指针 。
当使用索引查找时,系统沿着索引的树状结构,根据索引中关键字和指针,找到符合查询条件的的记录 。
最后,将全部查找到的符合 查询语句条件的记录显示出来 。
在SQL Server中,当访问数据库中的数据时,由SQL Server确定该表中是否有索引存在 。
如果没有索引,那么SQL Server使用表扫描的方法访问数据库中的数据 。
查询处理器根据分布的统计信息生成该查询语句的优化执行规划,以提高访问数据的效率为目标,确定是使用 表扫描还是使用索引 。
索引的选项
在创建索引时,可以指定一些选项,通过使用这些选项,可以优化索引的性能 。
这些选项包括FILLFACTOR选项、PAD_INDEX选项和SORTED_DATA_REORG选项 。
使用FILLFACTOR选项,可以优化插入语句和修改语句的性能 。
当某个索引页变满时,SQL Server必须花费时间分解该页,以便为新的记录行腾出空间 。
使用FILLFACTOR选项,就是在叶级索引页上分配一定百分比的自由空间,以便减少页 的分解时间 。
当在有数据的表中创建索引时,可以使用FILLFACTOR选项指定每一个叶级索引节点的填充的百分比 。
缺省值是0,该数值等价于100.在 创建索引的时候,内部索引节点总是留有了一定的空间,这个空间足够容纳一个或者两个表中的记录 。
在没有数据的表中,当创建索引的时候,不要使用该选项,因 为这时该选项是没有实际意义的 。
另外,该选项的数值在创建时指定以后,不能动态地得到维护,因此,只应该在有数据的表中创建索引时才使用 。
PAD_INDEX选项将FILLFACTOR选项的数值同样也用于内部的索引节点,使内部的索引节点的填充度与叶级索引的节点中的填充度相同 。
如果没有 指定FILLFACTOR选项,那么单独指定PAD_INDEX选项是没有实际意义的,这是因为PAD_INDEX选项的取值是由FILLFACTOR选 项的取值确定的 。
当创建聚簇索引时,SORTED_DATA_REORG选项清除排序,因此可以减少建立聚簇索引所需要的时间 。
当在一个已经变成碎块的表上创建或者重建聚 簇索引时,使用SORTED_DATA_REORG选项可以压缩数据页 。
当重新需要在索引上应用填充度时,也使用该选项 。
当使用 SORTED_DATA_REORG选项时,应该考虑这些因素:SQL Server确认每一个关键值是否比前一个关键值高,如果都不高,那么不能创建索引;SQL Server要求1.2倍的表空间来物理地重新组织数据;使用SORTED_DATA_REORG选项,通过清除排序进程而加快索引创建进程;从表中物理 地拷贝数据;当某一个行被删除时,其所占的空间可以重新利用;创建全部非聚簇索引;如果希望把叶级页填充到一定的百分比,可以同时使用 FILLFACTOR选项和SORTED_DATA_REORG选项 。
索引的维护
为了维护系统性能,索引在创建之后,由于频繁地对数据进行增加、删除、修改等操作使得索引页发生碎块,因此,必须对索引进行维护 。
- 浅谈邓稼先和杨振宁 邓稼先与杨振宁
- 浅谈电感器及其用途 电感有什么用
- 职场风水禁忌是什么 职场风水讲究(图文)
- 浅谈虹吸和倒虹吸 什么是倒虹吸原理
- 七 三国杀浅谈
- 【爱历史】浅谈终极恶女与扑克牌中四位君主的联系
- Mysql索引 索引有什么用
- Redmi k30pro另类的摄影巅峰浅谈30mm长焦微距的拍摄效果
- 万德数据库怎么用(wind数据库只能在学校用吗)
- 浅谈古琴的音色特点 古琴的音色