公司内部培训SQL Server传统索引结构PPT分享
公司内部培训SQL Server传统索引结构PPT分享
下载地址
SQL优化 讲课
下载地址
http://files.cnblogs.com/files/lyhabc/SQL%E4%BC%98%E5%8C%96%E8%AE%B2%E8%AF%BE.rar
PPT有不对的地方,多多拍砖o(∩_∩)o
索引结构

f

f
一页只能存储8060字节实际用户数据
表只有一列,并且数据类型为int的话,可以存储2015个值

f

f

f
f

f
页拆分
一个页装不下所有条目,页拆分过程:为索引分配两个额外的页
现有的rootpage 下降成一个叶级页。SQL Server获取索引页一半数据,把这一半数据移动到一个新分配的页面。另一个新页则放在索引结构的顶部,成为新的rootpage,整个过程的最后一步是获取每个叶级页的第一个条目,并将那些条目写入新创建的rootpage中

f
rootpage的2015行对应于中间级页面的2015个页,每个中间级页面也有2015个条目,它们对应于叶级的2015个页,最后加一个用于触发新层级的数据行(2015 3次方+1)
在成长到超过80亿多行后,才需要扫描三个索引页
rootpage已经到了存储极限,他不能容纳2016个条目,因为那会使他超过最大允许的8060字节,因此,SQL Server会再次经历一次“页拆分”过程,以前的rootpage变成一个中间级页,同时创建一个新的中间级页。以前的rootpage分一半条目给新建的中间级页。同时,两个中间级页的第一个条目都写入新的rootpage
所以SQL Server是B*树

f

f
空间索引
空间数据用一个二维坐标系统定义,索引用B树构建,而B树是一个线性结构

f
由于几何平面是无限的,所以不能为所有可能的二维空间都一定一个B树

f
交换分区的原理

假设一个表只有一个字段int类型 4字节,那么
一个页面实际数据8060字节除以4字节 得出一个页面可以存储2015行数据
8060/4=2015
扇出值就是2015
一个父节点可以有2015个孩子
二级
2015*2015=4060225 行
2016个页面
三级
2015*2015*2015=8181353375 行
4060226个页面
f
SQL Server2008数据库技术内幕P165
BOOT PAGE里面的dbi_firstSysIndexes项指向sys.sysallocunits数据字典表

f
公司内部培训SQL Server传统索引结构PPT分享的更多相关文章
- SQL Server 的索引结构实例
目前SQL Server 的索引结构如下: 这个是聚集索引的存放形式: 非聚集索引的方式如下: 它们是以B+树的数据结构存放的. 相信大家都看过类似的图,但是没有直观的认识,下面举一个实际的例子来说明 ...
- SQL Server In-Memory OLTP 无损PPT分享
我在今年DTCC上SQL Server内存数据库分享 PPT.感兴趣的朋友可以看下,无闩锁的数据结构使得热区问题成为过去,并行很好的维护了CPU Cache的命中率,Native代码执行使得CPU流水 ...
- SQL Server 查询优化 索引的结构与分类
一.索引的结构 关系型数据库中以二维表来表达关系模型,表中的数据以页的形式存储在磁盘上,在SQL SERVER中,数据页是磁盘上8k的连续空间,那么,一个表的所有数据页在磁盘上是如何组织的呢?分两种情 ...
- SQL SERVER大话存储结构(4)_复合索引与包含索引
索引这块从存储结构来分,有2大类,聚集索引和非聚集索引,而非聚集索引在堆表或者在聚集索引表都会对其 键值有所影响,这块可以详细查看本系列第二篇文章:SQL SERVER大话存储结构 ...
- 人人都是 DBA(VIII)SQL Server 页存储结构
当在 SQL Server 数据库中创建一张表时,会在多张系统基础表中插入所创建表的信息,用于管理该表.通过目录视图 sys.tables, sys.columns, sys.indexes 可以查看 ...
- SQL SERVER大话存储结构(6)_数据库数据文件
数据库文件有两大类:数据文件跟日志文件,每一个数据库至少各有一个数据文件或者日志文件,数据文件用来存储数据,日志文件用来存储数据库的事务修改情况,可用于恢复数据库使用. 这里分 ...
- SQL SERVER大话存储结构(5)_SQL SERVER 事务日志解析
本系列上一篇博文链接:SQL SERVER大话存储结构(4)_复合索引与包含索引 1 基本介绍 每个数据库都具有事务日志,用于记录所有事物以及每个事物对数据库所作的操作. 日志的记录 ...
- 搭建公司内部的NuGet Server
随着公司业务慢慢的拓展,项目便会越来越来多,很多项目会依赖其他项目DLL,比如一些底层的技术框架DLL引用,还有各业务系统的也有可能会有引用的可能. 项目多,交叉引用多,如果要是有一个DLL更新,那就 ...
- SQL Server创建索引(转)
什么是索引 拿汉语字典的目录页(索引)打比方:正如汉语字典中的汉字按页存放一样,SQL Server中的数据记录也是按页存放的,每页容量一般为4K .为了加快查找的速度,汉语字(词)典一般都有按拼音. ...
随机推荐
- Python 学习拾遗
该博文主要适应于python2.7,并没有对py3进行测试. 主要记录学习python过程中容易出现的一些小问题.小错误,相信能给你启发. 1.剔除一个字符串中的所有空格(假设该字符串是s) &quo ...
- python中list作为全局变量无需global声明的原因
发现一个问题. python中list变量作为全局变量时,在函数中可以直接修改. 而普通变量则需要先在函数中global声明,否则会报错. 例如: a = 1 def fun(): global a ...
- Win10 UI入门RelativePanel(2)
自适应 1) Gif: 添加动画 2)
- 在Linux和Windows的Docker容器中运行ASP.NET Core
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 译者序:其实过去这周我都在研究这方面的内容,结果周末有事没有来得及总结为文章,Scott H ...
- dir命令只显示文件名
dir /b 就是ls -f的效果 1057 -- FILE MAPPING_web_archive.7z 2007 多校模拟 - Google Search_web_archive.7z 2083 ...
- 详细讲述MySQL中的子查询操作 (来自脚本之家)
继续做以下的前期准备工作: 新建一个测试数据库TestDB: ? 1 create database TestDB; 创建测试表table1和table2: ? 1 2 3 4 5 6 7 8 9 1 ...
- 正定矩阵(positive definite matrix)
设M是n阶方阵,如果对任何非零向量z,都有zTMz> 0,其中zT 表示z的转置,就称M正定矩阵. 正定矩阵在合同变换下可化为标准型, 即对角矩阵. 所有特征值大于零的对称矩阵也是正定矩阵. ...
- CVE-2015-7645 analyze and exploit
Hack team之后adobe和google合作对flash进行了大改,一度提高了flash的利用门槛,CVE-2015-7645作为第一个突破这些限制的漏洞利用方式,可以作为vetect利用方式之 ...
- css/js(工作中遇到的问题)-4
JS生成随机的由字母数字组合的字符串 Math.random().toString(36).substr(2)
- curl模拟post,get,put,delete
安装curl:https://curl.haxx.se/download.html 测试:tomcat默认禁用put,delete返回403 GET curl -HAccept:text/plain ...