SQL Server 的索引结构实例
目前SQL Server 的索引结构如下:
这个是聚集索引的存放形式:
非聚集索引的方式如下:
它们是以B+树的数据结构存放的。
相信大家都看过类似的图,但是没有直观的认识,下面举一个实际的例子来说明图的结构。
1
2
3
4
5
6
7
8
9
10
11
|
USE Test
--1.创建表,指定主键(会自动创建聚集索引)
CREATE TABLE Person
(
Id int NOT NULL IDENTITY,
Name varchar (10) NOT NULL ,
Sex varchar (2) NOT NULL ,
CONSTRAINT PK_Person PRIMARY KEY (Id)
);
--2.创建非聚集索引
CREATE INDEX idx_Person_Sex ON Person(Sex);
|
1
2
3
4
|
--3.插入1笔数据
Insert Person values ( 'P0' , 'M' );
--4.查看表有哪些页
DBCC ind ( Test, [dbo.Person], -1)
|
1
2
3
4
|
--5. 打开3604监控
DBCC TraceON(3604,-1)
--6.查看聚集索引叶子节点页的数据
DBCC PAGE (Test,1,174, 1);
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
--7.插入1000条M和500条W记录
SET NOCOUNT ON ;
GO
DECLARE @i int ;
SET @i = 1000;
WHILE @i < 2000
BEGIN
Insert Person values ( 'P' + convert ( varchar (10),@i), 'M' );
SET @i = @i + 1;
END ;
DECLARE @i int ;
SET @i = 2000;
WHILE @i < 2500
BEGIN
Insert Person values ( 'P' + convert ( varchar (10),@i), 'W' );
SET @i = @i + 1;
END ;
GO
--8.查看表有哪些页
DBCC ind ( Test, [dbo.Person], -1)
|
1
2
|
--9.查看聚集索引页的数据
DBCC PAGE (Test,1,209, 3);
|
1
2
|
--10.查看非聚集索引页的数据
DBCC PAGE (Test,1,189, 3);
|
Index 的总结:
一个Index 可以有多个Page
Index 是以B+树结构存放的,其中分支节点的信息是存在一个Page中,而叶子节点存放在其他Page 。
转载于:https://www.cnblogs.com/lenther2002/p/6797128.html
SQL Server 的索引结构实例相关推荐
- SQL SERVER大话存储结构(2)
阅读目录(Content) 1 行记录如何存储 1.1 堆表 1.2 聚集索引表格 2 非聚集索引结构 3 非聚集索引键值内容 3.1 堆表上的非聚集索引 3.2 聚集索引表(唯一)的非聚集索引 3. ...
- SQL Server 聚集索引 clustered index 非聚集索引Nonclustered Indexes键查找查找Key Lookup执行计划过程详解
SQL Server 聚集索引非聚集索引键查找过程详解 索引的相关术语 1 堆(Heap)是一种没有指定排序的数据结构,通俗的理解堆就像是按照顺序排放的杂物.在数据库里也即是对应没有聚集索引. 2 聚 ...
- 理解SQL Server中索引的概念,原理以及其他
简介 在SQL Server中,索引是一种增强式的存在,这意味着,即使没有索引,SQL Server仍然可以实现应有的功能.但索引可以在大多数情况下大大提升查询性能,在OLAP中尤其明显.要完全理解索 ...
- T-SQL查询进阶--理解SQL Server中索引的概念,原理以及其他(看了两次了,转了)
简介 在SQL Server中,索引是一种增强式的存在,这意味着,即使没有索引,SQL Server仍然可以实现应有的功能.但索引可以在大多数情况下大大提升查询性能,在OLAP中尤其明显.要完全理解索 ...
- sql server 群集_设计有效SQL Server群集索引
sql server 群集 In the previous articles of this series (see bottom for a full index), we described, i ...
- 理解SQL Server中索引的概念,原理
理解SQL Server中索引的概念,原理 摘自:http://51even.iteye.com/blog/1490412 简介 在SQL Server中,索引是一种增强式的存在,这意味着,即使没有索 ...
- [转]SQL Server 2008存储结构之GAM、SGAM
[转]SQL Server 2008存储结构之GAM.SGAM [IT168专稿]谈到GAM和SGAM,我们不得不从数据库的页和区说起.一个数据库由用户定义的空间构成,这些空间用来永久存储用户对象,例 ...
- SQL Server创建索引
什么是索引 拿汉语字典的目录页(索引)打比方:正如汉语字典中的汉字按页存放一样,SQL Server中的数据记录也是按页存放的,每页容量一般为4K .为了加快查找的速度,汉语字(词)典一般都有按拼音. ...
- Oracle和sql server中复制表结构和表数据的sql语句
在Oracle和sql server中,如何从一个已知的旧表,来复制新生成一个新的表,如果要复制旧表结构和表数据,对应的sql语句该如何写呢?刚好阿堂这两天用到了,就顺便把它收集汇总一下,供朋友们参考 ...
最新文章
- windows进程生产者消费者代码c语言,生产者消费者问题---C语言实现
- 设一棵完全二叉树共有500个结点,则在该二叉树中有______个叶子结点
- 状态目标bfs+哈希表 + 三杯水
- php获取外部URL,使用PHP从外部API / URL获取信息
- CA7 ROLL B 选项
- Android RadioButton 语言切换问题
- 〔总结〕容易遗忘的JS知识点整理
- 魔方优化大师 v5.15 中文绿色版
- 费马小定理的两个证明
- Windows10 重装系统小白教程
- 微信小程序面试题总结
- 浅浅的记录一下seo搜索引擎优化
- 图片鼠标移入图片改变颜色、显示另外一张图片(2种方式)
- 电脑中毒了老是自动安装软件怎么办
- B-树详细分析及B树B-树B+树B*树概念
- 【报告分享】汽车产业变革的浪潮之巅-中国智能驾驶行业研究报告-艾瑞咨询(附下载)
- python实现离散傅里叶变换
- 华为MateBook X Pro 2022和2021区别 哪个好
- 收发一体超声波测距离传感器模块_Arduino传感器篇
- 数据集VOC/CIFAR10/CATDOG