视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
SQLSERVER中的ALLOCATIONSCAN和RANGESCAN
2020-11-09 10:20:51 责编:小采
文档


SQLSERVER中的ALLOCATION SCAN和RANGE SCAN 写这篇文章的开始,我还不知道ALLOCATION SCAN的工作原理是怎样的,网上资料少得可怜 求助了园子里的某位大侠,他看了我的信息几天之后才回复我,不过他的回复里没有答案 这几天一直在苦思冥想,后来终于通过动手

SQLSERVER中的ALLOCATION SCAN和RANGE SCAN

写这篇文章的开始,我还不知道ALLOCATION SCAN的工作原理是怎样的,网上资料少得可怜

求助了园子里的某位大侠,他看了我的信息几天之后才回复我,不过他的回复里没有答案

这几天一直在苦思冥想,后来终于通过动手,验证出来了,知道ALLOCATION SCAN的工作原理是怎样的(结果中秋节过完就出差去了)

10月3日回到家马上开始动笔

在看下去之前请大家先看一下下面的文章

SQLSERVER聚集索引与非聚集索引的再次研究(上)
SQLSERVER聚集索引与非聚集索引的再次研究(下)
查看SQLSERVER内部数据页面的小插件Internals Viewer

SQLSERVER新建表的时候页面分配情况是怎样的?

存储引擎揭秘:基本结构之四——IAM页,IAM链和存储单元

SQL Server 2008存储结构之IAM结构

看这篇文章之前一定要非常清楚聚集索引页面/非聚集索引页面和IAM页面的作用

聚集索引页面:有指针,,有记录,可以准确定位到数据页面

非聚集索引页面:有指向堆中的指针,可以准确定位到数据页面

IAM页面:IAM页面只知道表中数据页面的分配情况,他不知道这些数据页面里都存储了哪些表中的记录

知识准备

我们回顾一下聚集索引的知识

一个数据页面只有一条记录

大家知道在聚集索引页面里,每一行都会指向一个数据页,如下图

SQL脚本

ct1(c1 INT, c2 VARCHAR (5000)); t1c1 ON ct1(c1); ; ; ) ct1 , 5000)) ct1 DBCCResult ( 30 PageFID NVARCHAR(200), 31 PagePID NVARCHAR(200), 32 IAMFID NVARCHAR(200), 33 IAMPID NVARCHAR(200), 34 ObjectID NVARCHAR(200), 35 IndexID NVARCHAR(200), 36 PartitionNumber NVARCHAR(200), 37 PartitionID NVARCHAR(200), 38 iam_chain_type NVARCHAR(200), 39 PageType NVARCHAR(200), 40 IndexLevel NVARCHAR(200), 41 NextPageFID NVARCHAR(200), 42 NextPagePID NVARCHAR(200), 43 PrevPageFID NVARCHAR(200), 44 PrevPagePID NVARCHAR(200) 45 ) .-- DBCCResult ) .TRACEON(3604,-1) PAGE(,1,175,3) 56 GO

下载本文
显示全文
专题