公司内部培训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 .为了加快查找的速度,汉语字(词)典一般都有按拼音. ...
随机推荐
-
Html+js 控制input输入框提示
<input type="text" class="fl plsearch_txt" id="key" value="请输入 ...
-
检测中文长度gbk下2个字节
//$str = 'fff&sdf你是sdf好fdf啊b歌hello中world';$str = 'd你b_fff是好啊歌中潺潺 ';echo chineselength($str).&quo ...
-
使用GnuRadio+OpenLTE+SDR搭建4G LTE基站(上)
0×00 前言 在移动互联网大规模发展的背景下,智能手机的普及和各种互联网应用的流行,致使对无线网络的需求呈几何级增长,导致移动运营商之间的竞争愈发激烈.但由于资费下调等各种因素影响,运营商从用户获得 ...
-
MySQL 插入数据
MySQL 插入数据 MySQL 表中使用 INSERT INTO SQL语句来插入数据. 你可以通过 mysql> 命令提示窗口中向数据表中插入数据,或者通过PHP脚本来插入数据. 语法 以下 ...
-
全排列递归算法(元素有重复与无重复,C++实现)
元素无重复: 如:2,5,8,9. 思路:用递归的方法解决,对于2589,先输出所有以2开头的排列,然后输出5开头的排列.....(此处称为递归操作A).以2开头的排列中,第一位是2,后面的是589, ...
-
iOS解决cell重用问题
在写sina 微博界面的过程中使用到了cell,那么就是在cell上添加一些控件,但是由于每条微博的内容都是不同的,所以在显示的过程中,出现了内容重叠的问题,其实就是UITableViewCell重用 ...
-
ubuntu14.04 LTS Shutter配置快捷键
一 shutter设置后的截图 二 shutter配置快捷键 可通过 $shutter --help 查看命令 点击 “应用”按钮,然后:
-
005-SpringBoot2.x整合Security5(解决 There is no PasswordEncoder mapped for the id ";null";)
问题描述 SpringBoot升级到了2.0之后的版本,Security也由原来的版本4升级到了5 使用WebSecurityConfigurerAdapter继承重置方法 protected voi ...
-
解决vuejs应用在nginx非根目录下部署时访问404的问题
以往部署vuejs应用都是直接在nginx的location为/下直接部署,这次遇到要将vue应用部署在/vuejs-admin的非根下,使用以往部署方案直接访问就会404,这时修改步骤如下: 1.修 ...
-
C#自带缓存方案
/// <summary> /// 获取数据缓存 /// </summary> /// <param name="CacheKey">键< ...