SQLSERVER中的ALLOCATION SCAN和RANGE 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脚本

 1 USE [tempdb]
 2 GO
 3 --DROP TABLE [dbo].[ct1]
 4 --建立聚集索引表
 5 CREATE TABLE ct1(c1 INT, c2 VARCHAR (5000));
 6 GO
 7 --建立聚集索引
 8 CREATE CLUSTERED INDEX t1c1 ON ct1(c1);
 9 GO
10  
11 --插入测试数据
12 DECLARE @a INT;
13 SELECT @a = 1;
14 WHILE (@a <= 3)
15 BEGIN
16     INSERT INTO ct1 VALUES (@a, replicate('a', 5000))
17     SELECT @a = @a + 1
18 END
19 GO
20 
21 
22 
23 
24 --查询数据
25 SELECT * FROM ct1 
26 
27 
28 
29 CREATE TABLE 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 )
46 
47 TRUNCATE TABLE [dbo].[DBCCResult]
48 --
49 INSERT INTO DBCCResult EXEC ('DBCC IND(tempdb,ct1,-1) ')
50 
51 SELECT * FROM [dbo].[DBCCResult] ORDER BY [PageType] DESC 
52 
53 DBCC TRACEON(3604,-1)
54 GO
55 DBCC PAGE([tempdb],1,175,3) 
56 GO
View Code

上面的表有一个特点就是:一个数据页里只有一条记录
比如页面47,大家可以用DBCC PAGE命令看一下是否一个数据页只有一条记录

1 DBCC TRACEON(3604,-1)
2 GO
3 DBCC PAGE([tempdb],1,47,3) 
4 GO
  1 PAGE: (1:47)
  2 
  3 
  4 BUFFER:
  5 
  6 
  7 BUF @0x0358317C
  8 
  9 bpage = 0x15954000                   bhash = 0x00000000                   bpageno = (1:47)
 10 bdbid = 2                            breferences = 0                      bUse1 = 17140
 11 bstat = 0x1c0000b                    blog = 0x2159bbbb                    bnext = 0x00000000
 12 
 13 PAGE HEADER:
 14 
 15 
 16 Page @0x15954000
 17 
 18 m_pageId = (1:47)                    m_headerVersion = 1                  m_type = 1
 19 m_typeFlagBits = 0x4                 m_level = 0                          m_flagBits = 0x0
 20 m_objId (AllocUnitId.idObj) = 92     m_indexId (AllocUnitId.idInd) = 256  
 21 Metadata: AllocUnitId = 72057594043957248                                 
 22 Metadata: PartitionId = 72057594038976512                                 Metadata: IndexId = 1
 23 Metadata: ObjectId = 53575229        m_prevPage = (1:114)                 m_nextPage = (1:79)
 24 pminlen = 8                          m_slotCnt = 1                        m_freeCnt = 3077
 25 m_freeData = 5113                    m_reservedCnt = 0                    m_lsn = (39:284:319)
 26 m_xactReserved = 0                   m_xdesId = (0:0)                     m_ghostRecCnt = 0
 27 m_tornBits = 0                       
 28 
 29 Allocation Status
 30 
 31 GAM (1:2) = ALLOCATED                SGAM (1:3) = ALLOCATED               
 32 PFS (1:1) = 0x60 MIXED_EXT ALLOCATED   0_PCT_FULL                         DIFF (1:6) = CHANGED
 33 ML (1:7) = NOT MIN_LOGGED            
 34 
 35 Slot 0 Offset 0x60 Length 5017
 36 
 37 Record Type = PRIMARY_RECORD         Record Attributes =  NULL_BITMAP VARIABLE_COLUMNS
 38 
 39 Memory Dump @0x00BDC060
 40 
 41 00000000:   30000800 02000000 0300f802 001100990...............         
 42 00000010:   13616161 61616161 61616161 61616161 †.aaaaaaaaaaaaaaa         
 43 00000020:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 44 00000030:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 45 00000040:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 46 00000050:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 47 00000060:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 48 00000070:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 49 00000080:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 50 00000090:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 51 000000A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 52 000000B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 53 000000C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 54 000000D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 55 000000E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 56 000000F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 57 00000100:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 58 00000110:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 59 00000120:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 60 00000130:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 61 00000140:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 62 00000150:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 63 00000160:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 64 00000170:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 65 00000180:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 66 00000190:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 67 000001A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 68 000001B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 69 000001C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 70 000001D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 71 000001E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 72 000001F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 73 00000200:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 74 00000210:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 75 00000220:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 76 00000230:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 77 00000240:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 78 00000250:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 79 00000260:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 80 00000270:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 81 00000280:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 82 00000290:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 83 000002A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 84 000002B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 85 000002C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 86 000002D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 87 000002E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 88 000002F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 89 00000300:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 90 00000310:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 91 00000320:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 92 00000330:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 93 00000340:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 94 00000350:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 95 00000360:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 96 00000370:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 97 00000380:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 98 00000390:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 99 000003A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
100 000003B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
101 000003C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
102 000003D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
103 000003E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
104 000003F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
105 00000400:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
106 00000410:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
107 00000420:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
108 00000430:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
109 00000440:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
110 00000450:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
111 00000460:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
112 00000470:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
113 00000480:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
114 00000490:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
115 000004A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
116 000004B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
117 000004C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
118 000004D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
119 000004E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
120 000004F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
121 00000500:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
122 00000510:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
123 00000520:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
124 00000530:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
125 00000540:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
126 00000550:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
127 00000560:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
128 00000570:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
129 00000580:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
130 00000590:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
131 000005A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
132 000005B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
133 000005C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
134 000005D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
135 000005E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
136 000005F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
137 00000600:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
138 00000610:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
139 00000620:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
140 00000630:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
141 00000640:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
142 00000650:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
143 00000660:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
144 00000670:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
145 00000680:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
146 00000690:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
147 000006A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
148 000006B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
149 000006C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
150 000006D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
151 000006E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
152 000006F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
153 00000700:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
154 00000710:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
155 00000720:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
156 00000730:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
157 00000740:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
158 00000750:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
159 00000760:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
160 00000770:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
161 00000780:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
162 00000790:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
163 000007A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
164 000007B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
165 000007C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
166 000007D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
167 000007E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
168 000007F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
169 00000800:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
170 00000810:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
171 00000820:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
172 00000830:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
173 00000840:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
174 00000850:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
175 00000860:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
176 00000870:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
177 00000880:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
178 00000890:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
179 000008A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
180 000008B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
181 000008C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
182 000008D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
183 000008E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
184 000008F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
185 00000900:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
186 00000910:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
187 00000920:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
188 00000930:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
189 00000940:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
190 00000950:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
191 00000960:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
192 00000970:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
193 00000980:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
194 00000990:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
195 000009A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
196 000009B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
197 000009C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
198 000009D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
199 000009E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
200 000009F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
201 00000A00:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
202 00000A10:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
203 00000A20:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
204 00000A30:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
205 00000A40:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
206 00000A50:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
207 00000A60:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
208 00000A70:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
209 00000A80:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
210 00000A90:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
211 00000AA0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
212 00000AB0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
213 00000AC0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
214 00000AD0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
215 00000AE0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
216 00000AF0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
217 00000B00:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
218 00000B10:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
219 00000B20:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
220 00000B30:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
221 00000B40:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
222 00000B50:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
223 00000B60:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
224 00000B70:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
225 00000B80:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
226 00000B90:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
227 00000BA0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
228 00000BB0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
229 00000BC0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
230 00000BD0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
231 00000BE0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
232 00000BF0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
233 00000C00:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
234 00000C10:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
235 00000C20:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
236 00000C30:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
237 00000C40:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
238 00000C50:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
239 00000C60:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
240 00000C70:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
241 00000C80:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
242 00000C90:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
243 00000CA0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
244 00000CB0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
245 00000CC0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
246 00000CD0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
247 00000CE0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
248 00000CF0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
249 00000D00:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
250 00000D10:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
251 00000D20:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
252 00000D30:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
253 00000D40:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
254 00000D50:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
255 00000D60:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
256 00000D70:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
257 00000D80:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
258 00000D90:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
259 00000DA0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
260 00000DB0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
261 00000DC0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
262 00000DD0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
263 00000DE0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
264 00000DF0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
265 00000E00:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
266 00000E10:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
267 00000E20:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
268 00000E30:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
269 00000E40:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
270 00000E50:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
271 00000E60:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
272 00000E70:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
273 00000E80:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
274 00000E90:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
275 00000EA0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
276 00000EB0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
277 00000EC0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
278 00000ED0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
279 00000EE0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
280 00000EF0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
281 00000F00:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
282 00000F10:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
283 00000F20:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
284 00000F30:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
285 00000F40:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
286 00000F50:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
287 00000F60:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
288 00000F70:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
289 00000F80:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
290 00000F90:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
291 00000FA0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
292 00000FB0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
293 00000FC0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
294 00000FD0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
295 00000FE0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
296 00000FF0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
297 00001000:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
298 00001010:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
299 00001020:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
300 00001030:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
301 00001040:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
302 00001050:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
303 00001060:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
304 00001070:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
305 00001080:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
306 00001090:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
307 000010A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
308 000010B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
309 000010C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
310 000010D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
311 000010E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
312 000010F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
313 00001100:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
314 00001110:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
315 00001120:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
316 00001130:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
317 00001140:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
318 00001150:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
319 00001160:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
320 00001170:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
321 00001180:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
322 00001190:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
323 000011A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
324 000011B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
325 000011C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
326 000011D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
327 000011E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
328 000011F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
329 00001200:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
330 00001210:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
331 00001220:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
332 00001230:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
333 00001240:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
334 00001250:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
335 00001260:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
336 00001270:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
337 00001280:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
338 00001290:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
339 000012A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
340 000012B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
341 000012C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
342 000012D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
343 000012E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
344 000012F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
345 00001300:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
346 00001310:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
347 00001320:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
348 00001330:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
349 00001340:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
350 00001350:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
351 00001360:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
352 00001370:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
353 00001380:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
354 00001390:   61616161 61616161 61†††††††††††††††††aaaaaaaaa                
355 UNIQUIFIER = [NULL]                  
356 
357 Slot 0 Column 1 Offset 0x4 Length 4
358 
359 c1 = 2                               
360 
361 Slot 0 Column 2 Offset 0x11 Length 5000
362 
363 c2 = [Error converting to string (length 5000 bytes)]                     
364 
365 
366 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
View Code

 

每一行都会指向一个数据页面,并且记录了数据页面的聚集索引第一个字段的值,这里聚集索引第一个字段就是c1了

--------------------------------------------------------------------------------------------------------------------

一个数据页面有多条记录

聚集索引页面的一行记录指向一个数据页面,如果一个数据页面有多行记录怎麽办?

那么聚集索引页面的一行记录会记录下数据页面里聚集索引的第一个字段的范围值

我修改一下上面的SQL脚本,让一个数据页面容纳4条记录

 1 USE [tempdb]
 2 GO
 3 --DROP TABLE [dbo].[ct1]
 4 --建立聚集索引表
 5 CREATE TABLE ct1(c1 INT, c2 VARCHAR (2000));
 6 GO
 7 --建立聚集索引
 8 CREATE CLUSTERED INDEX t1c1 ON ct1(c1);
 9 GO
10  
11 --插入测试数据
12 DECLARE @a INT;
13 SELECT @a = 1;
14 WHILE (@a <= 12)
15 BEGIN
16     INSERT INTO ct1 VALUES (@a, replicate('a', 2000))
17     SELECT @a = @a + 1
18 END
19 GO
20 
21 
22 
23 
24 --查询数据
25 SELECT * FROM ct1 
26 
27 
28 
29 CREATE TABLE 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 )
46 
47 TRUNCATE TABLE [dbo].[DBCCResult]
48 --
49 INSERT INTO DBCCResult EXEC ('DBCC IND(tempdb,ct1,-1) ')
50 
51 SELECT * FROM [dbo].[DBCCResult] ORDER BY [PageType] DESC 
52 
53 DBCC TRACEON(3604,-1)
54 GO
55 DBCC PAGE([tempdb],1,78,3) 
56 GO
57 DBCC PAGE([tempdb],1,115,3) 
58 GO
View Code

这个SQL脚本的特点是一个数据页面容纳4条记录

比如数据页面115,大家可以用DBCC PAGE命令看一下是否一个数据页有四条记录

1 DBCC TRACEON(3604,-1)
2 GO
3 DBCC PAGE([tempdb],1,115,3) 
4 GO
  1 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
  2 
  3 PAGE: (1:115)
  4 
  5 
  6 BUFFER:
  7 
  8 
  9 BUF @0x0354475C
 10 
 11 bpage = 0x16296000                   bhash = 0x00000000                   bpageno = (1:115)
 12 bdbid = 2                            breferences = 0                      bUse1 = 18204
 13 bstat = 0x2c0000b                    blog = 0x2159bbbb                    bnext = 0x00000000
 14 
 15 PAGE HEADER:
 16 
 17 
 18 Page @0x16296000
 19 
 20 m_pageId = (1:115)                   m_headerVersion = 1                  m_type = 1
 21 m_typeFlagBits = 0x4                 m_level = 0                          m_flagBits = 0x8000
 22 m_objId (AllocUnitId.idObj) = 89     m_indexId (AllocUnitId.idInd) = 256  
 23 Metadata: AllocUnitId = 72057594043760640                                 
 24 Metadata: PartitionId = 72057594038779904                                 Metadata: IndexId = 1
 25 Metadata: ObjectId = 21575115        m_prevPage = (1:90)                  m_nextPage = (0:0)
 26 pminlen = 8                          m_slotCnt = 4                        m_freeCnt = 20
 27 m_freeData = 8164                    m_reservedCnt = 0                    m_lsn = (39:282:52)
 28 m_xactReserved = 0                   m_xdesId = (0:0)                     m_ghostRecCnt = 0
 29 m_tornBits = 0                       
 30 
 31 Allocation Status
 32 
 33 GAM (1:2) = ALLOCATED                SGAM (1:3) = ALLOCATED               
 34 PFS (1:1) = 0x60 MIXED_EXT ALLOCATED   0_PCT_FULL                         DIFF (1:6) = NOT CHANGED
 35 ML (1:7) = NOT MIN_LOGGED            
 36 
 37 Slot 0 Offset 0x60 Length 2017
 38 
 39 Record Type = PRIMARY_RECORD         Record Attributes =  NULL_BITMAP VARIABLE_COLUMNS
 40 
 41 Memory Dump @0x0768C060
 42 
 43 00000000:   30000800 09000000 0300f802 001100e1 †0...............         
 44 00000010:   07616161 61616161 61616161 61616161 †.aaaaaaaaaaaaaaa         
 45 00000020:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 46 00000030:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 47 00000040:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 48 00000050:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 49 00000060:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 50 00000070:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 51 00000080:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 52 00000090:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 53 000000A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 54 000000B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 55 000000C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 56 000000D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 57 000000E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 58 000000F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 59 00000100:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 60 00000110:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 61 00000120:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 62 00000130:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 63 00000140:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 64 00000150:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 65 00000160:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 66 00000170:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 67 00000180:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 68 00000190:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 69 000001A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 70 000001B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 71 000001C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 72 000001D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 73 000001E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 74 000001F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 75 00000200:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 76 00000210:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 77 00000220:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 78 00000230:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 79 00000240:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 80 00000250:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 81 00000260:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 82 00000270:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 83 00000280:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 84 00000290:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 85 000002A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 86 000002B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 87 000002C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 88 000002D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 89 000002E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 90 000002F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 91 00000300:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 92 00000310:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 93 00000320:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 94 00000330:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 95 00000340:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 96 00000350:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 97 00000360:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 98 00000370:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 99 00000380:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
100 00000390:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
101 000003A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
102 000003B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
103 000003C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
104 000003D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
105 000003E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
106 000003F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
107 00000400:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
108 00000410:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
109 00000420:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
110 00000430:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
111 00000440:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
112 00000450:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
113 00000460:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
114 00000470:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
115 00000480:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
116 00000490:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
117 000004A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
118 000004B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
119 000004C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
120 000004D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
121 000004E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
122 000004F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
123 00000500:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
124 00000510:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
125 00000520:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
126 00000530:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
127 00000540:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
128 00000550:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
129 00000560:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
130 00000570:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
131 00000580:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
132 00000590:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
133 000005A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
134 000005B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
135 000005C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
136 000005D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
137 000005E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
138 000005F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
139 00000600:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
140 00000610:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
141 00000620:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
142 00000630:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
143 00000640:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
144 00000650:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
145 00000660:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
146 00000670:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
147 00000680:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
148 00000690:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
149 000006A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
150 000006B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
151 000006C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
152 000006D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
153 000006E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
154 000006F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
155 00000700:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
156 00000710:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
157 00000720:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
158 00000730:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
159 00000740:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
160 00000750:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
161 00000760:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
162 00000770:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
163 00000780:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
164 00000790:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
165 000007A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
166 000007B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
167 000007C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
168 000007D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
169 000007E0:   61†††††††††††††††††††††††††††††††††††a                        
170 UNIQUIFIER = [NULL]                  
171 
172 Slot 0 Column 1 Offset 0x4 Length 4
173 
174 c1 = 9                               
175 
176 Slot 0 Column 2 Offset 0x11 Length 2000
177 
178 c2 = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
179 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
180 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
181 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
182 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
183 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
184 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
185 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
186 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
187 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
188 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
189 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
190 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
191 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
192 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
193 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
194 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
195 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
196 
197 Slot 1 Offset 0x841 Length 2017
198 
199 Record Type = PRIMARY_RECORD         Record Attributes =  NULL_BITMAP VARIABLE_COLUMNS
200 
201 Memory Dump @0x0768C841
202 
203 00000000:   30000800 0a000000 0300f802 001100e1 †0...............         
204 00000010:   07616161 61616161 61616161 61616161 †.aaaaaaaaaaaaaaa         
205 00000020:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
206 00000030:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
207 00000040:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
208 00000050:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
209 00000060:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
210 00000070:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
211 00000080:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
212 00000090:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
213 000000A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
214 000000B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
215 000000C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
216 000000D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
217 000000E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
218 000000F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
219 00000100:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
220 00000110:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
221 00000120:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
222 00000130:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
223 00000140:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
224 00000150:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
225 00000160:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
226 00000170:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
227 00000180:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
228 00000190:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
229 000001A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
230 000001B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
231 000001C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
232 000001D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
233 000001E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
234 000001F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
235 00000200:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
236 00000210:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
237 00000220:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
238 00000230:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
239 00000240:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
240 00000250:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
241 00000260:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
242 00000270:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
243 00000280:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
244 00000290:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
245 000002A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
246 000002B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
247 000002C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
248 000002D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
249 000002E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
250 000002F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
251 00000300:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
252 00000310:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
253 00000320:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
254 00000330:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
255 00000340:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
256 00000350:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
257 00000360:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
258 00000370:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
259 00000380:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
260 00000390:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
261 000003A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
262 000003B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
263 000003C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
264 000003D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
265 000003E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
266 000003F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
267 00000400:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
268 00000410:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
269 00000420:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
270 00000430:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
271 00000440:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
272 00000450:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
273 00000460:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
274 00000470:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
275 00000480:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
276 00000490:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
277 000004A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
278 000004B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
279 000004C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
280 000004D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
281 000004E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
282 000004F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
283 00000500:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
284 00000510:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
285 00000520:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
286 00000530:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
287 00000540:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
288 00000550:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
289 00000560:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
290 00000570:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
291 00000580:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
292 00000590:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
293 000005A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
294 000005B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
295 000005C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
296 000005D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
297 000005E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
298 000005F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
299 00000600:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
300 00000610:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
301 00000620:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
302 00000630:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
303 00000640:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
304 00000650:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
305 00000660:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
306 00000670:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
307 00000680:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
308 00000690:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
309 000006A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
310 000006B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
311 000006C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
312 000006D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
313 000006E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
314 000006F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
315 00000700:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
316 00000710:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
317 00000720:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
318 00000730:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
319 00000740:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
320 00000750:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
321 00000760:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
322 00000770:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
323 00000780:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
324 00000790:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
325 000007A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
326 000007B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
327 000007C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
328 000007D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
329 000007E0:   61†††††††††††††††††††††††††††††††††††a                        
330 UNIQUIFIER = [NULL]                  
331 
332 Slot 1 Column 1 Offset 0x4 Length 4
333 
334 c1 = 10                              
335 
336 Slot 1 Column 2 Offset 0x11 Length 2000
337 
338 c2 = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
339 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
340 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
341 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
342 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
343 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
344 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
345 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
346 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
347 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
348 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
349 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
350 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
351 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
352 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
353 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
354 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
355 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
356 
357 Slot 2 Offset 0x1022 Length 2017
358 
359 Record Type = PRIMARY_RECORD         Record Attributes =  NULL_BITMAP VARIABLE_COLUMNS
360 
361 Memory Dump @0x0768D022
362 
363 00000000:   30000800 0b000000 0300f802 001100e1 †0...............         
364 00000010:   07616161 61616161 61616161 61616161 †.aaaaaaaaaaaaaaa         
365 00000020:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
366 00000030:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
367 00000040:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
368 00000050:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
369 00000060:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
370 00000070:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
371 00000080:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
372 00000090:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
373 000000A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
374 000000B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
375 000000C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
376 000000D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
377 000000E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
378 000000F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
379 00000100:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
380 00000110:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
381 00000120:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
382 00000130:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
383 00000140:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
384 00000150:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
385 00000160:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
386 00000170:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
387 00000180:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
388 00000190:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
389 000001A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
390 000001B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
391 000001C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
392 000001D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
393 000001E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
394 000001F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
395 00000200:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
396 00000210:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
397 00000220:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
398 00000230:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
399 00000240:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
400 00000250:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
401 00000260:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
402 00000270:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
403 00000280:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
404 00000290:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
405 000002A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
406 000002B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
407 000002C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
408 000002D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
409 000002E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
410 000002F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
411 00000300:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
412 00000310:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
413 00000320:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
414 00000330:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
415 00000340:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
416 00000350:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
417 00000360:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
418 00000370:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
419 00000380:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
420 00000390:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
421 000003A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
422 000003B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
423 000003C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
424 000003D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
425 000003E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
426 000003F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
427 00000400:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
428 00000410:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
429 00000420:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
430 00000430:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
431 00000440:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
432 00000450:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
433 00000460:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
434 00000470:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
435 00000480:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
436 00000490:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
437 000004A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
438 000004B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
439 000004C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
440 000004D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
441 000004E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
442 000004F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
443 00000500:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
444 00000510:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
445 00000520:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
446 00000530:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
447 00000540:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
448 00000550:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
449 00000560:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
450 00000570:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
451 00000580:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
452 00000590:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
453 000005A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
454 000005B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
455 000005C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
456 000005D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
457 000005E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
458 000005F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
459 00000600:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
460 00000610:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
461 00000620:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
462 00000630:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
463 00000640:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
464 00000650:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
465 00000660:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
466 00000670:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
467 00000680:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
468 00000690:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
469 000006A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
470 000006B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
471 000006C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
472 000006D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
473 000006E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
474 000006F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
475 00000700:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
476 00000710:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
477 00000720:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
478 00000730:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
479 00000740:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
480 00000750:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
481 00000760:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
482 00000770:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
483 00000780:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
484 00000790:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
485 000007A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
486 000007B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
487 000007C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
488 000007D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
489 000007E0:   61†††††††††††††††††††††††††††††††††††a                        
490 UNIQUIFIER = [NULL]                  
491 
492 Slot 2 Column 1 Offset 0x4 Length 4
493 
494 c1 = 11                              
495 
496 Slot 2 Column 2 Offset 0x11 Length 2000
497 
498 c2 = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
499 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
500 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
501 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
502 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
503 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
504 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
505 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
506 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
507 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
508 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
509 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
510 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
511 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
512 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
513 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
514 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
515 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
516 
517 Slot 3 Offset 0x1803 Length 2017
518 
519 Record Type = PRIMARY_RECORD         Record Attributes =  NULL_BITMAP VARIABLE_COLUMNS
520 
521 Memory Dump @0x0768D803
522 
523 00000000:   30000800 0c000000 0300f802 001100e1 †0...............         
524 00000010:   07616161 61616161 61616161 61616161 †.aaaaaaaaaaaaaaa         
525 00000020:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
526 00000030:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
527 00000040:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
528 00000050:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
529 00000060:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
530 00000070:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
531 00000080:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
532 00000090:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
533 000000A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
534 000000B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
535 000000C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
536 000000D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
537 000000E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
538 000000F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
539 00000100:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
540 00000110:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
541 00000120:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
542 00000130:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
543 00000140:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
544 00000150:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
545 00000160:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
546 00000170:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
547 00000180:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
548 00000190:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
549 000001A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
550 000001B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
551 000001C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
552 000001D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
553 000001E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
554 000001F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
555 00000200:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
556 00000210:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
557 00000220:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
558 00000230:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
559 00000240:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
560 00000250:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
561 00000260:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
562 00000270:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
563 00000280:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
564 00000290:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
565 000002A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
566 000002B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
567 000002C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
568 000002D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
569 000002E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
570 000002F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
571 00000300:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
572 00000310:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
573 00000320:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
574 00000330:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
575 00000340:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
576 00000350:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
577 00000360:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
578 00000370:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
579 00000380:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
580 00000390:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
581 000003A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
582 000003B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
583 000003C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
584 000003D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
585 000003E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
586 000003F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
587 00000400:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
588 00000410:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
589 00000420:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
590 00000430:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
591 00000440:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
592 00000450:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
593 00000460:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
594 00000470:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
595 00000480:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
596 00000490:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
597 000004A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
598 000004B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
599 000004C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
600 000004D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
601 000004E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
602 000004F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
603 00000500:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
604 00000510:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
605 00000520:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
606 00000530:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
607 00000540:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
608 00000550:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
609 00000560:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
610 00000570:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
611 00000580:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
612 00000590:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
613 000005A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
614 000005B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
615 000005C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
616 000005D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
617 000005E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
618 000005F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
619 00000600:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
620 00000610:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
621 00000620:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
622 00000630:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
623 00000640:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
624 00000650:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
625 00000660:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
626 00000670:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
627 00000680:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
628 00000690:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
629 000006A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
630 000006B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
631 000006C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
632 000006D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
633 000006E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
634 000006F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
635 00000700:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
636 00000710:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
637 00000720:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
638 00000730:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
639 00000740:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
640 00000750:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
641 00000760:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
642 00000770:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
643 00000780:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
644 00000790:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
645 000007A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
646 000007B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
647 000007C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
648 000007D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
649 000007E0:   61†††††††††††††††††††††††††††††††††††a                        
650 UNIQUIFIER = [NULL]                  
651 
652 Slot 3 Column 1 Offset 0x4 Length 4
653 
654 c1 = 12                              
655 
656 Slot 3 Column 2 Offset 0x11 Length 2000
657 
658 c2 = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
659 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
660 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
661 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
662 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
663 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
664 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
665 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
666 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
667 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
668 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
669 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
670 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
671 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
672 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
673 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
674 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
675 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
676 
677 
678 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
View Code

一个数据页面有多条记录的情况下,聚集索引页面的每一行会记录数据页面的聚集索引第一个字段的在这个数据页面里的范围

这里聚集索引页面的每行记录的情况如下:

数据页面175里聚集索引第一个字段c1的范围是1~4

数据页面90里聚集索引第一个字段c1的范围是5~8

数据页面115里聚集索引第一个字段c1的范围是9~12

-----------------------------------------------------------------------------------

大家平时可能听到最多的就是全表扫描聚集索引扫描非聚集索引扫描远程扫描列存储索引扫描远程索引扫描

其实ALLOCATION SCANRANGE SCAN是针对全表扫描、聚集索引扫描、非聚集索引扫描这三个扫描的

在SSMS里查看执行计划的时候大家只会看到全表扫描、聚集索引扫描、非聚集索引扫描,但是SQLSERVER实际去扫描记录的时候

实际用到的是ALLOCATION SCAN和RANGE SCAN这两种扫描方式,而这两种扫描方式是不会显示在执行计划里的


聚集索引表

range scan的意思是说:根据聚集索引/非聚集索引的第一个字段的排序顺序依次去扫描每一行表中的记录

聚集索引表的range scan

一个数据页面只有一条记录的情况

SQL脚本如下:

 1 USE [tempdb]
 2 GO
 3 --DROP TABLE [dbo].[ct1]
 4 --建立聚集索引表
 5 CREATE TABLE ct1(c1 INT, c2 VARCHAR (8000));
 6 GO
 7 --建立聚集索引
 8 CREATE CLUSTERED INDEX t1c1 ON ct1(c1);
 9 GO
10  
11 --插入测试数据
12 DECLARE @a INT;
13 SELECT @a = 1;
14 WHILE (@a <= 3)
15 BEGIN
16     INSERT INTO ct1 VALUES (@a, replicate('a', 8000))
17     SELECT @a = @a + 1
18 END
19 GO
20 
21 
22 
23 
24 --查询数据
25 SELECT * FROM ct1 
26 
27 
28 
29 CREATE TABLE 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 )
46 
47 TRUNCATE TABLE [dbo].[DBCCResult]
48 --
49 INSERT INTO DBCCResult EXEC ('DBCC IND(tempdb,ct1,-1) ')
50 
51 SELECT * FROM [dbo].[DBCCResult] ORDER BY [PageType] DESC 
52 
53 DBCC TRACEON(3604,-1)
54 GO
55 DBCC PAGE([tempdb],1,90,3) 
56 GO
View Code

SQLSERVER扫描记录的方式可以用下面的图来表示

SQLSERVER根据c1(key)列向下扫描,第一行c1(key)列的值为1,对应的数据页是45,然后到数据页45把记录读出来

然后继续向下扫描,第二行c1(key)列的值为2,对应的数据页是115,然后到数据页115把记录读出来

然后继续向下扫描,第三行c1(key)列的值为3,对应的数据页是121,然后到数据页121把记录读出来

----------------------------------------------------------------------------------------

一个数据页面有多条记录的情况

我们重启一下SQLSERVER服务,清空一下tempdb数据库,再重新建立ct1表

SQL脚本如下:

 1 USE [tempdb]
 2 GO
 3 
 4 --建立聚集索引表
 5 CREATE TABLE ct1(c1 INT, c2 VARCHAR (2000));
 6 GO
 7 --建立聚集索引
 8 CREATE CLUSTERED INDEX t1c1 ON ct1(c1);
 9 GO
10  
11 --插入测试数据
12 DECLARE @a INT;
13 SELECT @a = 1;
14 WHILE (@a <= 12)
15 BEGIN
16     INSERT INTO ct1 VALUES (@a, replicate('a', 2000))
17     SELECT @a = @a + 1
18 END
19 GO
20 
21 
22 
23 
24 --查询数据
25 SELECT * FROM ct1 
26 
27 
28 
29 CREATE TABLE 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 )
46 
47 TRUNCATE TABLE [dbo].[DBCCResult]
48 --
49 INSERT INTO DBCCResult EXEC ('DBCC IND(tempdb,ct1,-1) ')
50 
51 SELECT * FROM [dbo].[DBCCResult] ORDER BY [PageType] DESC 
52 
53 DBCC TRACEON(3604,-1)
54 GO
55 DBCC PAGE([tempdb],1,175,3) 
56 GO
View Code

SQLSERVER扫描记录的方式可以用下面的图来表示

SQLSERVER根据c1(key)列向下扫描,第一行c1(key)列的范围值为1~4,对应的数据页是115,

然后到数据页115里顺着c1列的值向下扫描,因为数据页面在建立聚集索引的时候,都已经根据c1列的值排好序了,只需要根据

c1列的值向下扫描并读取出记录就可以了

数据页115里的记录扫描并读取完毕,然后回到聚集索引页面,在聚集索引页的第二行c1(key)列的范围值为5~8,

对应的数据页是45,然后到数据页45里顺着c1列的值向下扫描

数据页45里的记录扫描并读取完毕,然后回到聚集索引页面,在聚集索引页的第三行c1(key)列的范围值为9~12,

对应的数据页是78,然后到数据页78里顺着c1列的值向下扫描

 

聚集索引表的range scan的过程就是这样,如此类推

---------------------------------------------------------------------------------------------------

聚集索引表的allocation scan

allocation scan的意思是说:在新建表并插入数据的时候,根据表中的IAM页面分配数据表的页面的先后顺序,来读取表中的记录

在继续往下看之前,请先看一下我之前写的文章:SQLSERVER新建表的时候页面分配情况是怎样的?

我们新建一个数据库,以便更容易观察表的页面分配情况

SQL脚本如下:

 1 use master
 2 go
 3 
 4 DROP DATABASE allocationordertest
 5 GO
 6 CREATE DATABASE allocationordertest
 7 GO
 8 
 9 
10 USE allocationordertest
11 GO
12  
13 ------------------------------------
14 CREATE TABLE DBCCResult (
15 PageFID NVARCHAR(200),
16 PagePID NVARCHAR(200),
17 IAMFID NVARCHAR(200),
18 IAMPID NVARCHAR(200),
19 ObjectID NVARCHAR(200),
20 IndexID NVARCHAR(200),
21 PartitionNumber NVARCHAR(200),
22 PartitionID NVARCHAR(200),
23 iam_chain_type NVARCHAR(200),
24 PageType NVARCHAR(200),
25 IndexLevel NVARCHAR(200),
26 NextPageFID NVARCHAR(200),
27 NextPagePID NVARCHAR(200),
28 PrevPageFID NVARCHAR(200),
29 PrevPagePID NVARCHAR(200)
30 )
31  ------------------------聚集索引表----------------------------------------
32  --建立聚集索引表
33 CREATE TABLE ct1(c1 INT, c2 VARCHAR (8000));
34 GO
35 --建立聚集索引
36 CREATE CLUSTERED INDEX t1c1 ON ct1(c1);
37 GO
38 
39 --插入测试数据
40 DECLARE @a INT;
41 SELECT @a = 10;
42 WHILE (@a < 100)
43 BEGIN
44     INSERT INTO ct1 VALUES (@a, replicate('a', 5000))
45     SELECT @a = @a + 1
46 END;
47 -------------------------------
48 DECLARE @a INT;
49 SELECT @a = 1;
50 WHILE (@a < 10)
51 BEGIN
52     INSERT INTO ct1 VALUES (@a, replicate('a', 5000))
53     SELECT @a = @a + 1
54 END;
View Code

我们新建的ct1表的一条记录占用一个数据页,在插入数据到表中的时候,第一次插入c1列的值为10~99,第二次插入c1列的值为1~9,

我们查询一下数据:

1 --查询数据
2 SELECT * FROM ct1;

可以看到数据按照range scan的方式,根据c1列的值排好序并显示出来

我们用WITH (NOLOCK)这个query hint来再查询一下数据

1 --查询数据
2 SELECT * FROM ct1 WITH (NOLOCK);

数据按照 数据插入的顺序来显示出来:在插入数据到表中的时候,第一次插入c1列的值为10~99,第二次插入c1列的值为1~9

select出来的数据也是按照插入的顺序显示的

为什麽会这样???

大家可以看一下这篇文章:为什么NOLOCK反而返回更少的数据

 

由于篇幅的关系,这里就不详细讨论为什麽会出现allocation scan了,我们下面继续讲allocation scan的原理

----------------------------------------------------------------------------------

下面我们看一下页面的分配情况

先找出c1的值为99存放在哪个数据页面

由于页面分配是从小到大分配的,我们使用下面的SQL语句

1 TRUNCATE TABLE [dbo].[DBCCResult]
2 
3 INSERT INTO DBCCResult EXEC ('DBCC IND(allocationordertest,ct1,-1) ')
4 
5 SELECT * FROM [dbo].[DBCCResult]  ORDER BY [PageType] DESC 

根据数据页面的ID的大小从小到大排列,第一次插入测试数据的时候插入c1列的值为10~99,就是说从DBCCResult表select出来的结果里

从第一行开始数到第99-10+2=92行的那个页面应该就是99存放的那个页面,为什麽是第92行?因为查询语句中没有排除掉IAM页和聚集索引页

IAM页和聚集索引页各占一个页面

1 SELECT * FROM [dbo].[DBCCResult]  ORDER BY [PageType] DESC 

 

我们看一下258这个数据页

1 DBCC TRACEON(3604,-1)
2 GO
3 DBCC PAGE(allocationordertest,1,258,3) 
4 GO
View Code
  1 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
  2 
  3 PAGE: (1:258)
  4 
  5 
  6 BUFFER:
  7 
  8 
  9 BUF @0x036444D4
 10 
 11 bpage = 0x19D56000                   bhash = 0x00000000                   bpageno = (1:258)
 12 bdbid = 11                           breferences = 1                      bUse1 = 30485
 13 bstat = 0xc0010b                     blog = 0x32121bb                     bnext = 0x00000000
 14 
 15 PAGE HEADER:
 16 
 17 
 18 Page @0x19D56000
 19 
 20 m_pageId = (1:258)                   m_headerVersion = 1                  m_type = 1
 21 m_typeFlagBits = 0x4                 m_level = 0                          m_flagBits = 0xc000
 22 m_objId (AllocUnitId.idObj) = 84     m_indexId (AllocUnitId.idInd) = 256  
 23 Metadata: AllocUnitId = 72057594043432960                                 
 24 Metadata: PartitionId = 72057594038452224                                 Metadata: IndexId = 1
 25 Metadata: ObjectId = 2089058478      m_prevPage = (1:257)                 m_nextPage = (0:0)
 26 pminlen = 8                          m_slotCnt = 1                        m_freeCnt = 3077
 27 m_freeData = 5113                    m_reservedCnt = 0                    m_lsn = (42:310:9)
 28 m_xactReserved = 0                   m_xdesId = (0:0)                     m_ghostRecCnt = 0
 29 m_tornBits = 0                       
 30 
 31 Allocation Status
 32 
 33 GAM (1:2) = ALLOCATED                SGAM (1:3) = NOT ALLOCATED           PFS (1:1) = 0x40 ALLOCATED   0_PCT_FULL
 34 DIFF (1:6) = CHANGED                 ML (1:7) = NOT MIN_LOGGED            
 35 
 36 Slot 0 Offset 0x60 Length 5017
 37 
 38 Record Type = PRIMARY_RECORD         Record Attributes =  NULL_BITMAP VARIABLE_COLUMNS
 39 
 40 Memory Dump @0x077EC060
 41 
 42 00000000:   30000800 63000000 0300f802 001100990...c...........         
 43 00000010:   13616161 61616161 61616161 61616161 †.aaaaaaaaaaaaaaa         
 44 00000020:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 45 00000030:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 46 00000040:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 47 00000050:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 48 00000060:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 49 00000070:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 50 00000080:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 51 00000090:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 52 000000A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 53 000000B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 54 000000C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 55 000000D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 56 000000E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 57 000000F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 58 00000100:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 59 00000110:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 60 00000120:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 61 00000130:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 62 00000140:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 63 00000150:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 64 00000160:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 65 00000170:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 66 00000180:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 67 00000190:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 68 000001A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 69 000001B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 70 000001C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 71 000001D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 72 000001E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 73 000001F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 74 00000200:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 75 00000210:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 76 00000220:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 77 00000230:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 78 00000240:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 79 00000250:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 80 00000260:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 81 00000270:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 82 00000280:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 83 00000290:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 84 000002A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 85 000002B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 86 000002C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 87 000002D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 88 000002E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 89 000002F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 90 00000300:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 91 00000310:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 92 00000320:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 93 00000330:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 94 00000340:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 95 00000350:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 96 00000360:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 97 00000370:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 98 00000380:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
 99 00000390:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
100 000003A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
101 000003B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
102 000003C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
103 000003D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
104 000003E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
105 000003F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
106 00000400:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
107 00000410:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
108 00000420:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
109 00000430:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
110 00000440:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
111 00000450:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
112 00000460:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
113 00000470:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
114 00000480:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
115 00000490:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
116 000004A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
117 000004B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
118 000004C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
119 000004D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
120 000004E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
121 000004F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
122 00000500:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
123 00000510:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
124 00000520:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
125 00000530:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
126 00000540:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
127 00000550:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
128 00000560:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
129 00000570:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
130 00000580:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
131 00000590:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
132 000005A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
133 000005B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
134 000005C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
135 000005D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
136 000005E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
137 000005F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
138 00000600:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
139 00000610:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
140 00000620:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
141 00000630:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
142 00000640:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
143 00000650:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
144 00000660:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
145 00000670:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
146 00000680:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
147 00000690:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
148 000006A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
149 000006B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
150 000006C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
151 000006D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
152 000006E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
153 000006F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
154 00000700:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
155 00000710:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
156 00000720:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
157 00000730:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
158 00000740:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
159 00000750:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
160 00000760:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
161 00000770:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
162 00000780:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
163 00000790:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
164 000007A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
165 000007B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
166 000007C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
167 000007D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
168 000007E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
169 000007F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
170 00000800:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
171 00000810:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
172 00000820:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
173 00000830:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
174 00000840:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
175 00000850:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
176 00000860:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
177 00000870:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
178 00000880:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
179 00000890:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
180 000008A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
181 000008B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
182 000008C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
183 000008D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
184 000008E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
185 000008F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
186 00000900:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
187 00000910:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
188 00000920:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
189 00000930:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
190 00000940:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
191 00000950:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
192 00000960:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
193 00000970:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
194 00000980:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
195 00000990:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
196 000009A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
197 000009B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
198 000009C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
199 000009D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
200 000009E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
201 000009F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
202 00000A00:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
203 00000A10:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
204 00000A20:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
205 00000A30:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
206 00000A40:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
207 00000A50:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
208 00000A60:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
209 00000A70:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
210 00000A80:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
211 00000A90:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
212 00000AA0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
213 00000AB0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
214 00000AC0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
215 00000AD0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
216 00000AE0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
217 00000AF0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
218 00000B00:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
219 00000B10:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
220 00000B20:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
221 00000B30:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
222 00000B40:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
223 00000B50:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
224 00000B60:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
225 00000B70:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
226 00000B80:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
227 00000B90:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
228 00000BA0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
229 00000BB0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
230 00000BC0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
231 00000BD0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
232 00000BE0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
233 00000BF0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
234 00000C00:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
235 00000C10:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
236 00000C20:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
237 00000C30:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
238 00000C40:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
239 00000C50:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
240 00000C60:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
241 00000C70:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
242 00000C80:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
243 00000C90:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
244 00000CA0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
245 00000CB0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
246 00000CC0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
247 00000CD0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
248 00000CE0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
249 00000CF0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
250 00000D00:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
251 00000D10:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
252 00000D20:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
253 00000D30:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
254 00000D40:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
255 00000D50:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
256 00000D60:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
257 00000D70:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
258 00000D80:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
259 00000D90:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
260 00000DA0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
261 00000DB0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
262 00000DC0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
263 00000DD0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
264 00000DE0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
265 00000DF0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
266 00000E00:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
267 00000E10:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
268 00000E20:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
269 00000E30:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
270 00000E40:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
271 00000E50:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
272 00000E60:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
273 00000E70:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
274 00000E80:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
275 00000E90:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
276 00000EA0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
277 00000EB0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
278 00000EC0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
279 00000ED0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
280 00000EE0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
281 00000EF0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
282 00000F00:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
283 00000F10:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
284 00000F20:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
285 00000F30:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
286 00000F40:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
287 00000F50:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
288 00000F60:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
289 00000F70:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
290 00000F80:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
291 00000F90:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
292 00000FA0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
293 00000FB0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
294 00000FC0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
295 00000FD0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
296 00000FE0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
297 00000FF0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
298 00001000:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
299 00001010:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
300 00001020:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
301 00001030:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
302 00001040:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
303 00001050:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
304 00001060:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
305 00001070:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
306 00001080:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
307 00001090:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
308 000010A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
309 000010B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
310 000010C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
311 000010D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
312 000010E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
313 000010F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
314 00001100:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
315 00001110:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
316 00001120:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
317 00001130:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
318 00001140:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
319 00001150:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
320 00001160:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
321 00001170:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
322 00001180:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
323 00001190:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
324 000011A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
325 000011B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
326 000011C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
327 000011D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
328 000011E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
329 000011F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
330 00001200:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
331 00001210:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
332 00001220:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
333 00001230:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
334 00001240:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
335 00001250:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
336 00001260:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
337 00001270:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
338 00001280:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
339 00001290:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
340 000012A0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
341 000012B0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
342 000012C0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
343 000012D0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
344 000012E0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
345 000012F0:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
346 00001300:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
347 00001310:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
348 00001320:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
349 00001330:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
350 00001340:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
351 00001350:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
352 00001360:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
353 00001370:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
354 00001380:   61616161 61616161 61616161 61616161 †aaaaaaaaaaaaaaaa         
355 00001390:   61616161 61616161 61†††††††††††††††††aaaaaaaaa                
356 UNIQUIFIER = [NULL]                  
357 
358 Slot 0 Column 1 Offset 0x4 Length 4
359 
360 c1 = 99                              
361 
362 Slot 0 Column 2 Offset 0x11 Length 5000
363 
364 c2 = [Error converting to string (length 5000 bytes)]                     
365 
366 
367 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
View Code

刚好c1的值就是99

我们看一下IAM页面

1 DBCC TRACEON(3604,-1)
2 GO
3 DBCC PAGE(allocationordertest,1,80,3) 
4 GO
View Code

ct1表从45这个页面开始,一直到数据页272这个区间里进行分配,而ct1表的最后一个数据页是267

再看一下DBCCRESULT的结果

1 SELECT * FROM [dbo].[DBCCResult]  ORDER BY [PageType] DESC 

如果大家从页面259到267逐个逐个页面进行DBCC PAGE的话就会看到259~267页面里存放的c1值就是1~9

但是,数据页面45存放的c1值不是10,数据页77里存放的c1值才是10

为什麽会这样??

因为新建表的时候,表数据先存放在混合区,放在混合区里的数据页的里数据的排序具有不确定性

而当表数据超过8个页面的时候,数据开始在统一区分配,这时候统一区里的数据页的里数据的排序就会按照插入的顺序了

更详细的看我之前写的文章:SQLSERVER新建表的时候页面分配情况是怎样的?

我们借助Internals Viewer从宏观的角度看一下页面分配情况

我们关注紫色的小方格,紫色的小方格代表ct1表

上图用棕色笔画住的区域里的紫色的小方格表示SQLSERVER第一次分配的页面

上图用深绿色笔画住的区域里的紫色的小方格表示SQLSERVER第二次分配的页面

 

在这个小节的开头,allocation scan的解释是:

在新建表并插入数据的时候,根据表中的IAM页面分配数据表的页面的先后顺序

来读取表中的记录

SQLSERVER第一次分配的页面从45页开始一直到258,这些页面里c1的值是:10~99

第二次分配的页面从259开始一直到267,这些页面里c1的值是1~9

所以,使用下面SQL语句,查询处理的结果的c1值先是10~99,然后是1~9

1 --查询数据
2 SELECT * FROM ct1 WITH (NOLOCK);

 

 ----------------------------------------------------------------------------------------

 我们再来做一个实验,修改一下上面的SQL脚本

 先drop掉allocationordertest数据库,再重新建立,SQL脚本如下:

 1 use master
 2 go
 3 
 4 DROP DATABASE allocationordertest
 5 GO
 6 CREATE DATABASE allocationordertest
 7 GO
 8 
 9 
10 USE allocationordertest
11 GO
12  
13 ------------------------------------
14 CREATE TABLE DBCCResult (
15 PageFID NVARCHAR(200),
16 PagePID NVARCHAR(200),
17 IAMFID NVARCHAR(200),
18 IAMPID NVARCHAR(200),
19 ObjectID NVARCHAR(200),
20 IndexID NVARCHAR(200),
21 PartitionNumber NVARCHAR(200),
22 PartitionID NVARCHAR(200),
23 iam_chain_type NVARCHAR(200),
24 PageType NVARCHAR(200),
25 IndexLevel NVARCHAR(200),
26 NextPageFID NVARCHAR(200),
27 NextPagePID NVARCHAR(200),
28 PrevPageFID NVARCHAR(200),
29 PrevPagePID NVARCHAR(200)
30 )
31  ------------------------聚集索引表----------------------------------------
32  --建立聚集索引表
33 CREATE TABLE ct1(c1 INT, c2 VARCHAR (8000));
34 GO
35 --建立聚集索引
36 CREATE CLUSTERED INDEX t1c1 ON ct1(c1);
37 GO
38  
39 --插入测试数据
40 DECLARE @a INT;
41 SELECT @a = 21;
42 WHILE (@a <= 100)
43 BEGIN
44     INSERT INTO ct1 VALUES (@a, replicate('a', 8000))
45     SELECT @a = @a + 1
46 END
47 GO
48 
49 
50 DECLARE @a INT;
51 SELECT @a = 11;
52 WHILE (@a <= 20)
53 BEGIN
54     INSERT INTO ct1 VALUES (@a, replicate('a', 5000))
55     SELECT @a = @a + 1
56 END
57 GO
58  
59 DECLARE @a INT;
60 SELECT @a = 1;
61 WHILE (@a <= 10)
62 BEGIN
63     INSERT INTO ct1 VALUES (@a, replicate('a', 5000))
64     SELECT @a = @a + 1
65 END
66 GO
View Code

 在插入数据到表中的时候,第一次插入c1列的值为21~100,第二次插入c1列的值为11~20,第三次插入c1列的值为1~10

 查询数据

1 --查询数据
2 SELECT * FROM ct1 with(nolock)

查询出来c1列的结果是21~100,11~20,1~10

这里我们要找c1的值为21、100、11、20、1、10这些c1值所在的页面

聚集索引页面为89

IAM页面为80

先看一下IAM页面吧

1 DBCC TRACEON(3604,-1)
2 GO
3 DBCC PAGE(allocationordertest,1,80,3) 
4 GO
View Code

表的页面分配区间是45~271,这里为了节省时间,我就不左计算右计算了

我这里估算21、100、11、20、1、10这些c1值所在的页面,然后逐个页面进行DBCC PAGE

查找到的结果:

21存放在数据页77

100存放在数据页248

11存放在数据页249

20存放在数据页258

1存放在数据页259

10存放在数据页268

就是说三次分配的数据页分别是

第一次分配的页面是:45~248

第二次分配的页面是:249~258

第三次分配的页面是:259~268

为什麽需要先插入21~100的记录,然再插入剩余的记录?

因为SQLSERVER在新建表并开始分配页面的时候,分配在混合区里的页面没有排序确定性,

所以需要先要插入21~100的记录,让SQLSERVER分配的页面超过8页

具体可以看一下:SQLSERVER新建表的时候页面分配情况是怎样的?

 

 


堆表

由于堆表没有索引页面,所以不加order by的情况下总是以allocation scan的方式扫描数据

SQL脚本如下:

 1 -----------------------------------堆表---------------------------------------------------
 2 --堆表永远使用allocation scan  除非加order by 将数据存入到tempdb进行排序
 3 --建立堆表
 4 USE [allocationordertest]
 5 GO
 6 CREATE TABLE t1(c1 INT, c2 VARCHAR (8000));
 7 GO
 8 
 9 
10 --插入测试数据
11 DECLARE @a INT;
12 SELECT @a = 21;
13 WHILE (@a <= 100)
14 BEGIN
15     INSERT INTO t1 VALUES (@a, replicate('a', 8000))
16     SELECT @a = @a + 1
17 END
18 GO
19 
20 
21 DECLARE @a INT;
22 SELECT @a = 11;
23 WHILE (@a <= 20)
24 BEGIN
25     INSERT INTO t1 VALUES (@a, replicate('a', 5000))
26     SELECT @a = @a + 1
27 END
28 GO
29  
30 DECLARE @a INT;
31 SELECT @a = 1;
32 WHILE (@a <= 10)
33 BEGIN
34     INSERT INTO t1 VALUES (@a, replicate('a', 5000))
35     SELECT @a = @a + 1
36 END
37 GO
38 
39 --查询数据
40 SELECT * FROM t1 
View Code

我们依然使用allocationordertest数据库

查询数据,注意不要加order by和with (nolock)

1 --查询数据
2 SELECT * FROM t1 

查询出的结果是21~100,11~20,1~10

堆表的allocation scan和聚集索引表的allocation scan是一样的,这里就不详细叙述了


 

非聚集索引表

SQL脚本如下:

 1 ----------------------非聚集索引表--------------------------------------------
 2 --建立非聚集索引表
 3 USE [allocationordertest]
 4 GO
 5 CREATE TABLE nct1(c1 INT, c2 VARCHAR (8000));
 6 GO
 7 --建立非聚集索引
 8 CREATE  INDEX nt1c1 ON nct1(c1);
 9 GO
10  
11 --插入数据
12 DECLARE @a INT;
13 SELECT @a = 21;
14 WHILE (@a <= 100)
15 BEGIN
16     INSERT INTO nct1 VALUES (@a, replicate('a', 5000))
17     SELECT @a = @a + 1
18 END
19 GO
20 
21 
22 DECLARE @a INT;
23 SELECT @a = 11;
24 WHILE (@a <= 20)
25 BEGIN
26     INSERT INTO nct1 VALUES (@a, replicate('a', 5000))
27     SELECT @a = @a + 1
28 END
29 GO
30  
31 DECLARE @a INT;
32 SELECT @a = 1;
33 WHILE (@a <= 10)
34 BEGIN
35     INSERT INTO nct1 VALUES (@a, replicate('a', 5000))
36     SELECT @a = @a + 1
37 END
38 GO
View Code

我们依然使用allocationordertest数据库

查询数据 都不用加with(nolock)

1 --allocation scan
2 SELECT * FROM nct1 

查询c1列的结果是:21~100,11~20,1~10

1 --range scan
2 SELECT c1 FROM nct1 

查询c1列的结果是1~100

 

为什么会出现两种不同的结果?

非聚集索引表有点复杂

扫描索引页 range scan,这里range scan跟聚集索引有点不同

非聚集索表,扫描有两种方式:

(1)扫描非聚集索引页(非聚集索引扫描)
(2)扫描堆里的数据页(全表扫描)

实际上,我们可以再细分

如果使用非聚集索引扫描的时候,肯定用的是range scan的方式,

如果使用全表扫描的时候,肯定使用的是allocation scan的方式

我们使用下面SQL语句看一下nct1表中的非聚集索引页面

 1 TRUNCATE TABLE [dbo].[DBCCResult]
 2 
 3 INSERT INTO DBCCResult EXEC ('DBCC IND(allocationordertest,nct1,-1) ')
 4 
 5 SELECT * FROM [dbo].[DBCCResult] ORDER BY [PageType] DESC 
 6 
 7 DBCC TRACEON(3604,-1)
 8 GO
 9 DBCC PAGE(allocationordertest,1,115,3) 
10 GO
View Code

 

非聚集索引的range scan,按照c1列的值一直向下扫描

首先扫描第一行c1的值为1,如果需要读取其他字段的值就根据指针到数据页去读取其他字段的值

到数据页读取其他字段的值完毕之后,再扫描第二行,第二行c1的值为2,如果需要读取其他字段的值就根据指针到

数据页去读取其他字段的值,到数据页读取其他字段的值完毕之后,再扫描第三行,一直如此类推

 

 

 

全表扫描的时候没有扫描非聚集索引页,只扫描了堆里的数据页,这时候跟堆表的情况是一样的

为什麽下面SQL语句会使用全表扫描?不用索引扫描,有时候SQLSERVER认为全表扫描比索引扫描快就会使用全表扫描

1 SELECT * FROM nct1 

具体可以看:SQLSERVER聚集索引与非聚集索引的再次研究(下)

 


归纳

allocation scan:堆表 、聚集索引表、非聚集索引表

range scan:聚集索引表、非聚集索引表

 


 

下面说一下使用SET STATISTICS IO ON 的时候,逻辑读次数的一个有趣问题

帖子地址:http://social.msdn.microsoft.com/Forums/zh-CN/cdadc542-2a98-4207-9e22-a7acd2caaec2/iamlogical-reads

LZ说:两次查询的逻辑读的次数都不一样,在帖子的回复里,博客园里某位大侠已经给出了答案

他的答案是:两个查询都分别使用了range scan和allocation scan

range scan的时候IAM页面是没有用的,只靠聚集索引页面/非聚集索引页面去扫描记录,所以SQLSERVER需要去读取索引页

allocation scan的时候聚集索引页面/非聚集索引页面是没有用的,只靠IAM页面去扫描记录,所以SQLSERVER需要去读取IAM页

所以,使用SET STATISTICS IO ON的时候,逻辑读取次数有时候会有出入

1 USE [GPOSDB]
2 GO
3 SET STATISTICS IO ON
4 SELECT * FROM [dbo].[SystemPara]
5 
6 (17 行受影响)
7'SystemPara'。扫描计数 1,逻辑读取 2 次,物理读取 1 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。

 

 


总结

大家在做上面实验的时候,一定要看清楚查询语句,都没有加上order by的,没有加with (nolock)的时候不要加 with (nolock)

看完这篇文章之后,我相信您会更加清楚我在开头说的三句话

相关文章:

http://blogs.msdn.com/b/sqlserverstorageengine/archive/2006/11/09/when-can-allocation-order-scans-be-used.aspx

 

如有不对的地方,欢迎大家拍砖o(∩_∩)o 

2014-01-07补充:

今天群里面的胡平大侠介绍了,根据执行计划里索引扫描/聚集索引扫描的是否排序来判断是allocation scan还是range scan

posted @ 2013-10-03 23:17  桦仔  阅读(3023)  评论(5编辑  收藏  举报