• 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

  • 相关阅读:
    intelliJ idea 9设置
    Ibatis的cache使用
    发现个漂亮的eclipse插件
    Java compiler level does not match the version of the installed Java project facet
    ajax servlet端小问题
    Annotation学习小结
    杯具的webservice,杯具的axis和xfire
    idea 9
    aptana 注释快捷键失效
    javascript深入理解js闭包
  • 原文地址:https://www.cnblogs.com/lyhabc/p/3329535.html
Copyright © 2020-2023  润新知