sqlserver 索引进阶(下)
参考原文 http://www.cnblogs.com/tjy9999/p/4494799.html
第十级, 索引内部结构
建立索引的目的是加快对表中记录的查找或排序。为表设置索引要付出代价的:一是增加了数据库的存储空间,二是在插入和修改数据时要花费较多的时间(因为索引也要随之变动)。在之前的级别中,我们从逻辑的角度介绍索引。除了要关心索引带来的好处,还要关心索引的消耗。理解索引的内部结构,可以在进行数据插入,更新,删除的时候,最小化索引的创建,修改,移动,从而减少索引消耗。
索引是一种结构。在SQL Server中,索引和聚集索引表的存储结构都是B树,B树是一种用于查找的平衡多叉树.B树结构如下:

叶子和非叶子层
索引的机构由叶子和非叶子层组成。尽管没有明显的说明,我们之前的级别主要集中于索引的叶子层。索引入口也叫做索引行,不管它是表的一行(聚集索引叶子入口),还是表中一行的引用(非聚集索引叶子层),还是指向更低级别(非叶子层)的一页。指向页的指针除了包含数据文件的编号和页的编号,如果一个指针是5:4567,表示指向#5文件的第4567页。
非叶子层:
构建在叶子层上的结构,使得SQL Server可以完成下面的工作:
- 以索引键的顺序维护索引的入口。
 - 根据给定的索引键值,快速的找到叶子层。
 
叶子层:
对于非聚集索引来说,在叶子层每行都有一个入口(过滤索引除外),每个入口由索引键列、可选的包含列和标签组成,标签的内存是聚集索引的键列或者RID(Row ID)。聚集索引的叶子层就是表本身,每个叶子层的入口都是表中的一行。
   
a. 非聚集索引 b. 聚集索引
sqlserver 索引进阶(下)的更多相关文章
- sqlserver 索引进阶(上)
		
参考原文:http://www.cnblogs.com/tjy9999/p/4494662.html 2. 非聚集索引 SET STATISTICS io ON SET STATISTICS time ...
 - SqlServer索引的原理与应用
		
索引的概念 索引的用途:我们对数据查询及处理速度已成为衡量应用系统成败的标准,而采用索引来加快数据处理速度通常是最普遍采用的优化方法. 索引是什么:数据库中的索引类似于一本书的目录,在一本书中使用目录 ...
 - 【译】SQL Server索引进阶第八篇:唯一索引
		
原文:[译]SQL Server索引进阶第八篇:唯一索引 索引设计是数据库设计中比较重要的一个环节,对数据库的性能其中至关重要的作用,但是索引的设计却又不是那么容易的事情,性能也不是那么轻易就 ...
 - 认识SQLServer索引以及单列索引和多列索引的不同
		
一.索引的概念 索引的用途:我们对数据查询及处理速度已成为衡量应用系统成败的标准,而采用索引来加快数据处理速度通常是最普遍采用的优化方法. 索引是什么:数据库中的索引类似于一本书的目录,在一本书中使 ...
 - SQL Server索引进阶:第十级,索引内部结构
		
原文地址: Stairway to SQL Server Indexes: Level 10,Index Internal Structure 本文是SQL Server索引进阶系列(Stairway ...
 - SQL Server索引进阶:第九级,读懂执行计划
		
原文地址: Stairway to SQL Server Indexes: Level 9,Reading Query Plans 本文是SQL Server索引进阶系列(Stairway to SQ ...
 - SQL Server索引进阶:第八级,唯一索引
		
原文地址: Stairway to SQL Server Indexes: Level 8,Unique Indexes 本文是SQL Server索引进阶系列(Stairway to SQL Ser ...
 - SQL Server索引进阶:第七级,过滤的索引
		
原文地址: Stairway to SQL Server Indexes: Level 7,Filtered Indexes 本文是SQL Server索引进阶系列(Stairway to SQL S ...
 - SQL Server索引进阶:第五级,包含列
		
原文地址: Stairway to SQL Server Indexes: Level 5, Included Columns 本文是SQL Server索引进阶系列(Stairway to SQL ...
 
随机推荐
- solr search基础知识(控制符及其参数)
			
1.^ 控制符 (1)查询串上用^ 搜索: 天后王菲,如果希望将王菲的相关度加大,用^控制符. 天后 王菲^10.5 结果就会将含有王菲的document权重加大分数提高,排序靠前,10.5为权重 ...
 - GBK、GB2312和UTF-8编码区分
			
GBK包含全部中文字符, GBK的文字编码是双字节来表示的,即不论中.英文字符均使用双字节来表示,只不过为区分中文,将其最高位都定成1. 至于UTF-8编码则是用以解决国际上字符的一种多字节编码,它对 ...
 - Ros学习——Python发布器publisher和订阅器subscriber
			
1.编写发布器 初始化 ROS 系统 在 ROS 网络内广播我们将要在 chatter 话题上发布 std_msgs/String 类型的消息 以每秒 10 次的频率在 chatter 上发布消息 在 ...
 - Python中for else注意事项
			
假设有如下代码: for i in range(10): if i == 5: print 'found it! i = %s' % i else: print 'not found it ...' ...
 - cocos2d-js 定时器
			
1.scheduleUpdate 节点中有scheduleUpdate接口,通过这个接口,可以让游戏在每帧执行都执行update方法 var ScheduleUpdateLayer = cc.Laye ...
 - php学习笔记-超级全局变量
			
超级全局变量,超级在哪里呢?相对于global类型的变量,超级全局变量的作用域是没有限制的,函数外.函数内.随便一个PHP文件都可以引用超级全局变量.在PHP中有很多超级全局变量, 常用的有_SERV ...
 - Ubuntu相关IP配置(转)
			
配置文件:/etc/network/interfaces 打开后里面可设置DHCP或手动设置静态ip.前面auto eth0,让网卡开机自动挂载. 1. 以DHCP方式配置网卡 编辑文件/etc/ne ...
 - Java基础-集合框架-ArrayList源码分析
			
一.JDK中ArrayList是如何实现的 1.先看下ArrayList从上而下的层次图: 说明: 从图中可以看出,ArrayList只是最下层的实现类,集合的规则和扩展都是AbstractList. ...
 - WebGoat系列实验Injection Flaws
			
WebGoat系列实验Injection Flaws Numeric SQL Injection 下列表单允许用户查看天气信息,尝试注入SQL语句显示所有天气信息. 选择一个位置的天气,如Columb ...
 - c# XML增删改查
			
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...