Tuesday, November 20, 2012

Explore file physical structure - fixed length row

1. Create sample db


use master
go
CREATE DATABASE [test] ON  PRIMARY
( NAME = N'test', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\master\test.mdf' , SIZE = 3072KB , FILEGROWTH = 1024KB )
 LOG ON
( NAME = N'test_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\master\test_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%)
GO

2. Create table
use test
GO


BEGIN TRANSACTION
GO
CREATE TABLE dbo.mytest
(
a char(100) NOT NULL,
b char(500) NOT NULL,
d char(400) NOT NULL
)  ON [PRIMARY]
GO
ALTER TABLE dbo.mytest ADD CONSTRAINT
PK_mytest PRIMARY KEY CLUSTERED
(
a
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

GO

COMMIT

3. Insert test data
use test
go

Declare @int int
set @int=1
while (@int <= 8)
begin
insert into mytest(a,b,d)
values(@int,CONVERT(char(10),@int),CONVERT(char(10),@int))
set @int=@int+1
end

4. select data and check page number

use master
GO
SELECT %%physloc%% rowid, sys.fn_PhysLocFormatter (%%physloc%%) AS [Physical RID],DATALENGTH(a) a_length, DATALENGTH(b) b_length,DATALENGTH(d) d_length, * FROM test.dbo.mytest
GO
output
rowid Physical RID a_length b_length d_length a b d
0x9900000001000000 (1:153:0) 100 500 400 1 1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    1                                                                                                                                                                                                                                                                                                                                                                                                               
0x9900000001000100 (1:153:1) 100 500 400 2 2                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    2                                                                                                                                                                                                                                                                                                                                                                                                               
0x9900000001000200 (1:153:2) 100 500 400 3 3                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    3                                                                                                                                                                                                                                                                                                                                                                                                               
0x9900000001000300 (1:153:3) 100 500 400 4 4                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    4                                                                                                                                                                                                                                                                                                                                                                                                               
0x9900000001000400 (1:153:4) 100 500 400 5 5                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    5                                                                                                                                                                                                                                                                                                                                                                                                               
0x9900000001000500 (1:153:5) 100 500 400 6 6                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    6                                                                                                                                                                                                                                                                                                                                                                                                               
0x9900000001000600 (1:153:6) 100 500 400 7 7                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    7                                                                                                                                                                                                                                                                                                                                                                                                               
0x9900000001000700 (1:153:7) 100 500 400 8 8                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    8                                                                                                                                                                                                                                                                                                                                                                                                               


so the 8 rows are saved in same page: (1:153)

5. check page (1:153)

DBCC TRACEON(3604)
GO
dbcc page(test,1,153,2) --WITH TABLERESULTS
GO

the output and comment

DBCC execution completed. If DBCC printed error messages, contact your system administrator.

PAGE: (1:153)


BUFFER:


BUF @0x0000000085FA93C0

bpage = 0x000000008518A000           bhash = 0x0000000000000000           bpageno = (1:153)
bdbid = 16                           breferences = 0                      bcputicks = 0
bsampleCount = 0                     bUse1 = 25449                        bstat = 0xc00009
blog = 0x32159                       bnext = 0x0000000000000000        

PAGE HEADER:


Page @0x000000008518A000

m_pageId = (1:153)                   m_headerVersion = 1                  m_type = 1
#m_type:(http://www.sqlskills.com/BLOGS/PAUL/post/Inside-the-Storage-Engine-Anatomy-of-a-page.aspx)
#1 - data page. This holds data records in a heap or clustered index leaf-level.
#2 - index page. This holds index records in the upper levels of a clustered index and all levels of non-clustered indexes.
#3 - text mix page. A text page that holds small chunks of LOB values plus internal parts of text tree. These can be shared between LOB values in the same partition of an index or heap.
#4 - text tree page. A text page that holds large chunks of LOB values from a single column value.
#7 - sort page. A page that stores intermediate results during a sort operation.
#8 - GAM page. Holds global allocation information about extents in a GAM interval (every data file is split into 4GB chunks - the number of extents that can be represented in a bitmap on a single database page). Basically whether an extent is allocated or not. GAM = Global Allocation Map. The first one is page 2 in each file. More on these in a later post.
#9 - SGAM page. Holds global allocation information about extents in a GAM interval. Basically whether an extent is available for allocating mixed-pages. SGAM = Shared GAM. the first one is page 3 in each file. More on these in a later post.
#10 - IAM page. Holds allocation information about which extents within a GAM interval are allocated to an index or allocation unit, in SQL Server 2000 and 2005 respectively. IAM = Index Allocation Map. More on these in a later post.
#11 - PFS page. Holds allocation and free space information about pages within a PFS interval (every data file is also split into approx 64MB chunks - the number of pages that can be represented in a byte-map on a single database page. PFS = Page Free Space. The first one is page 1 in each file. More on these in a later post.
#13 - boot page. Holds information about the database. There's only one of these in the database. It's page 9 in file 1.
#15 - file header page. Holds information about the file. There's one per file and it's page 0 in the file.
#16 - diff map page. Holds information about which extents in a GAM interval have changed since the last full or differential backup. The first one is page 6 in each file.
#17 - ML map page. Holds information about which extents in a GAM interval have changed while in bulk-logged mode since the last backup. This is what allows you to switch to bulk-logged mode for bulk-loads and index rebuilds without worrying about breaking a backup chain. The first one is page 7 in each file.
#20 -  This check for page type 20 was introduced in 9.00.3239 and is present in both SQL 2005 and SQL 2008. Normally these pages are allocated during Online Indexing operations and Bulk Inserts

m_typeFlagBits = 0x4                 m_level = 0                          m_flagBits = 0x8200
#m_typeFlagBits: For data and index pages it will always be 4. For all other pages it will always be 0 - except PFS pages. If a PFS page has m_typeFlagBits of 1, that means that at least one of the pages in the PFS interval mapped by the PFS page has at least one ghost record.

#m_flagBits: This stores a number of different flags that describe the page. For example, 0x200 means that the page has a page checksum on it (as our example page does) and 0x100 means the page has torn-page protection on it.
m_objId (AllocUnitId.idObj) = 28     m_indexId (AllocUnitId.idInd) = 256

Metadata: AllocUnitId = 72057594039762944                              
#AllocUnitId = (m_indexId << 48) | (m_objId <<16)
#m_objId = 0n28 = 0x1C
#m_indexId = 0n256 = 0x100
#AllocUnitId=(0x100 << 0n48) | (0x1c << 0n16)=72057594039762944
#select * from sys.allocation_units where allocation_unit_id=72057594039762944
#select * from sys.system_internals_allocation_units where allocation_unit_id=72057594039762944

Metadata: PartitionId = 72057594038845440                                 Metadata: IndexId = 1
#select * from sys.partitions where partition_id=72057594038845440 and index_id=1

Metadata: ObjectId = 2105058535      m_prevPage = (0:0)                   m_nextPage = (0:0)
#select @@object_name(2105058535)
#m_prevPage and m_nextPage: These are pointers to the previous and next pages at this level of the b-tree and store 6-byte page IDs.

pminlen = 1004                       m_slotCnt = 8                        m_freeCnt = 24
#pminlen: This is the size of the fixed-length portion of the records on the page + 4 byes(in our sample, it is 1000ec03)
#m_slotCnt: This is the count of records on the page = "select row_count from sys.dm_os_buffer_descriptors where database_id=16 and file_id=1 and page_id=153"
#m_freeCnt: This is the number of bytes of free space in the page = "select free_space_in_bytes from sys.dm_os_buffer_descriptors where database_id=16 and file_id=1 and page_id=153"
#m_freeCnt=Page size(8192) -page header size(96)-row size(1007)*row count(8)-offset table at the tail of page(row count(8)*2bytes)=24

m_freeData = 8152                    m_reservedCnt = 0                    m_lsn = (28:114:2)
#m_freeData : This is the offset from the start of the page to the first byte after the end of the last record on the page. It doesn't matter if there is free space nearer to the start of the page.
#m_freeData 8152=page header(96)+ row length(1007)x8 Rows=8152
#m_reservedCnt: This is the number of bytes of free space that has been reserved by active transactions that freed up space on the page. It prevents the free space from being used up and allows the transactions to roll-back correctly. There's a very complicated algorithm for changing this value.
#m_lsn: This is the Log Sequence Number of the last log record that changed the page

m_xactReserved = 0                   m_xdesId = (0:0)                     m_ghostRecCnt = 0
#m_xactReserved: This is the amount that was last added to the m_reservedCnt field.
#m_xdesId: This is the internal ID of the most recent transaction that added to the m_reservedCnt field.
#m_ghostRecCnt:The is the count of ghost records on the page

m_tornBits = -601009571            
#This holds either the page checksum or the bits that were displaced by the torn-page protection bits - depending on what form of page protection is turnde on for the database

Allocation Status

GAM (1:2) = ALLOCATED                SGAM (1:3) = ALLOCATED            
PFS (1:1) = 0x60 MIXED_EXT ALLOCATED   0_PCT_FULL                         DIFF (1:6) = CHANGED
ML (1:7) = NOT MIN_LOGGED          

DATA:


Slot 0, Offset 0x60, Length 1007, DumpStyle BYTE
#length 1007=4 bytes Row Header(1000ec03) + 1000 bytes row + 3 bytes row tail(030000)=1007

Record Type = PRIMARY_RECORD         Record Attributes =  NULL_BITMAP     Record Size = 1007

Memory Dump @0x00000000105BA060

0000000000000000:   1000ec03 31202020 20202020 20202020 †..ì.1
#4bytres row head 1000ec03
#first byte "10": The first byte is a status byte that contains info on how to parse the row contents. The value 0x10 defines the inclusion of a NULL_BITMAP, as indicated by the record attributes.
#more info: Bit 4(0x10) means the record has a NULL bitmap and bit 5(0x20) means the record has variable length columns. If 0x40 (bit 6) was also set, that would indicate that the record has a versioning tag. If 0x80 (bit 7) was also set, that would indicate that byte 1 has a value in it.
#Bits 1-3 of byte 0 give the record type. The possible values are:
#0 = primary record. A data record in a heap that hasn't been forwarded or a data record at the leaf level of a clustered index.
#1 = forwarded record
#2 = forwarding record
#3 = index record
#4 = blob fragment
#5 = ghost index record
#6 = ghost data record
#7 = ghost version record. A special 15-byte record containing a single byte record header plus a 14-byte versioning tag that is used in some circumstances (like ghosting a versioned blob record)
#second byte "00":is the TagB byte of the record metadata. It can either be 0x00 or 0x01. If it is 0x01, that means the record type is ghost forwarded record. In this case its 0x00, which is what we expect given the TagA byte value.
#Third, Fourth "ec03":The next two bytes store the byte index position of where to find the number of columns in this row, within the rows data. SQL Server stores numbers with the low order byte first, so the bytes must be switched around to get the position. Thus 0xec03 becomes 0x03ec (1004 in decimal).
#from fifth bytes "31": it is the fixed length portion
0000000000000010:   20202020 20202020 20202020 20202020 †              
0000000000000020:   20202020 20202020 20202020 20202020 †              
0000000000000030:   20202020 20202020 20202020 20202020 †              
0000000000000040:   20202020 20202020 20202020 20202020 †              
0000000000000050:   20202020 20202020 20202020 20202020 †              
0000000000000060:   20202020 20202020 31202020 20202020 †        1      
0000000000000070:   20202020 20202020 20202020 20202020 †              
0000000000000080:   20202020 20202020 20202020 20202020 †              
0000000000000090:   20202020 20202020 20202020 20202020 †              
00000000000000A0:   20202020 20202020 20202020 20202020 †              
00000000000000B0:   20202020 20202020 20202020 20202020 †              
00000000000000C0:   20202020 20202020 20202020 20202020 †              
00000000000000D0:   20202020 20202020 20202020 20202020 †              
00000000000000E0:   20202020 20202020 20202020 20202020 †              
00000000000000F0:   20202020 20202020 20202020 20202020 †              
0000000000000100:   20202020 20202020 20202020 20202020 †              
0000000000000110:   20202020 20202020 20202020 20202020 †              
0000000000000120:   20202020 20202020 20202020 20202020 †              
0000000000000130:   20202020 20202020 20202020 20202020 †              
0000000000000140:   20202020 20202020 20202020 20202020 †              
0000000000000150:   20202020 20202020 20202020 20202020 †              
0000000000000160:   20202020 20202020 20202020 20202020 †              
0000000000000170:   20202020 20202020 20202020 20202020 †              
0000000000000180:   20202020 20202020 20202020 20202020 †              
0000000000000190:   20202020 20202020 20202020 20202020 †              
00000000000001A0:   20202020 20202020 20202020 20202020 †              
00000000000001B0:   20202020 20202020 20202020 20202020 †              
00000000000001C0:   20202020 20202020 20202020 20202020 †              
00000000000001D0:   20202020 20202020 20202020 20202020 †              
00000000000001E0:   20202020 20202020 20202020 20202020 †              
00000000000001F0:   20202020 20202020 20202020 20202020 †              
0000000000000200:   20202020 20202020 20202020 20202020 †              
0000000000000210:   20202020 20202020 20202020 20202020 †              
0000000000000220:   20202020 20202020 20202020 20202020 †              
0000000000000230:   20202020 20202020 20202020 20202020 †              
0000000000000240:   20202020 20202020 20202020 20202020 †              
0000000000000250:   20202020 20202020 20202020 31202020 †            1  
0000000000000260:   20202020 20202020 20202020 20202020 †              
0000000000000270:   20202020 20202020 20202020 20202020 †              
0000000000000280:   20202020 20202020 20202020 20202020 †              
0000000000000290:   20202020 20202020 20202020 20202020 †              
00000000000002A0:   20202020 20202020 20202020 20202020 †              
00000000000002B0:   20202020 20202020 20202020 20202020 †              
00000000000002C0:   20202020 20202020 20202020 20202020 †              
00000000000002D0:   20202020 20202020 20202020 20202020 †              
00000000000002E0:   20202020 20202020 20202020 20202020 †              
00000000000002F0:   20202020 20202020 20202020 20202020 †              
0000000000000300:   20202020 20202020 20202020 20202020 †              
0000000000000310:   20202020 20202020 20202020 20202020 †              
0000000000000320:   20202020 20202020 20202020 20202020 †              
0000000000000330:   20202020 20202020 20202020 20202020 †              
0000000000000340:   20202020 20202020 20202020 20202020 †              
0000000000000350:   20202020 20202020 20202020 20202020 †              
0000000000000360:   20202020 20202020 20202020 20202020 †              
0000000000000370:   20202020 20202020 20202020 20202020 †              
0000000000000380:   20202020 20202020 20202020 20202020 †              
0000000000000390:   20202020 20202020 20202020 20202020 †              
00000000000003A0:   20202020 20202020 20202020 20202020 †              
00000000000003B0:   20202020 20202020 20202020 20202020 †              
00000000000003C0:   20202020 20202020 20202020 20202020 †              
00000000000003D0:   20202020 20202020 20202020 20202020 †              
00000000000003E0:   20202020 20202020 20202020 030000††††            ...
#after fixed row portion: "030000"
#first two bytes "0300" store the number of columns. Notice that this is stored at byte index 8, as indicated by the third and fourth bytes in the row. so there are 3 columns
#Finally the null bitmap is stored in the last byte. 0x00 converted to binary is 0000 0000, indicating that the first column value is not null (the first 0, read backwards).


Slot 1, Offset 0x44f, Length 1007, DumpStyle BYTE

Record Type = PRIMARY_RECORD         Record Attributes =  NULL_BITMAP     Record Size = 1007

Memory Dump @0x00000000105BA44F

0000000000000000:   1000ec03 32202020 20202020 20202020 †..ì.2          
0000000000000010:   20202020 20202020 20202020 20202020 †              
0000000000000020:   20202020 20202020 20202020 20202020 †              
0000000000000030:   20202020 20202020 20202020 20202020 †              
0000000000000040:   20202020 20202020 20202020 20202020 †              
0000000000000050:   20202020 20202020 20202020 20202020 †              
0000000000000060:   20202020 20202020 32202020 20202020 †        2      
0000000000000070:   20202020 20202020 20202020 20202020 †              
0000000000000080:   20202020 20202020 20202020 20202020 †              
0000000000000090:   20202020 20202020 20202020 20202020 †              
00000000000000A0:   20202020 20202020 20202020 20202020 †              
00000000000000B0:   20202020 20202020 20202020 20202020 †              
00000000000000C0:   20202020 20202020 20202020 20202020 †              
00000000000000D0:   20202020 20202020 20202020 20202020 †              
00000000000000E0:   20202020 20202020 20202020 20202020 †              
00000000000000F0:   20202020 20202020 20202020 20202020 †              
0000000000000100:   20202020 20202020 20202020 20202020 †              
0000000000000110:   20202020 20202020 20202020 20202020 †              
0000000000000120:   20202020 20202020 20202020 20202020 †              
0000000000000130:   20202020 20202020 20202020 20202020 †              
0000000000000140:   20202020 20202020 20202020 20202020 †              
0000000000000150:   20202020 20202020 20202020 20202020 †              
0000000000000160:   20202020 20202020 20202020 20202020 †              
0000000000000170:   20202020 20202020 20202020 20202020 †              
0000000000000180:   20202020 20202020 20202020 20202020 †              
0000000000000190:   20202020 20202020 20202020 20202020 †              
00000000000001A0:   20202020 20202020 20202020 20202020 †              
00000000000001B0:   20202020 20202020 20202020 20202020 †              
00000000000001C0:   20202020 20202020 20202020 20202020 †              
00000000000001D0:   20202020 20202020 20202020 20202020 †              
00000000000001E0:   20202020 20202020 20202020 20202020 †              
00000000000001F0:   20202020 20202020 20202020 20202020 †              
0000000000000200:   20202020 20202020 20202020 20202020 †              
0000000000000210:   20202020 20202020 20202020 20202020 †              
0000000000000220:   20202020 20202020 20202020 20202020 †              
0000000000000230:   20202020 20202020 20202020 20202020 †              
0000000000000240:   20202020 20202020 20202020 20202020 †              
0000000000000250:   20202020 20202020 20202020 32202020 †            2  
0000000000000260:   20202020 20202020 20202020 20202020 †              
0000000000000270:   20202020 20202020 20202020 20202020 †              
0000000000000280:   20202020 20202020 20202020 20202020 †              
0000000000000290:   20202020 20202020 20202020 20202020 †              
00000000000002A0:   20202020 20202020 20202020 20202020 †              
00000000000002B0:   20202020 20202020 20202020 20202020 †              
00000000000002C0:   20202020 20202020 20202020 20202020 †              
00000000000002D0:   20202020 20202020 20202020 20202020 †              
00000000000002E0:   20202020 20202020 20202020 20202020 †              
00000000000002F0:   20202020 20202020 20202020 20202020 †              
0000000000000300:   20202020 20202020 20202020 20202020 †              
0000000000000310:   20202020 20202020 20202020 20202020 †              
0000000000000320:   20202020 20202020 20202020 20202020 †              
0000000000000330:   20202020 20202020 20202020 20202020 †              
0000000000000340:   20202020 20202020 20202020 20202020 †              
0000000000000350:   20202020 20202020 20202020 20202020 †              
0000000000000360:   20202020 20202020 20202020 20202020 †              
0000000000000370:   20202020 20202020 20202020 20202020 †              
0000000000000380:   20202020 20202020 20202020 20202020 †              
0000000000000390:   20202020 20202020 20202020 20202020 †              
00000000000003A0:   20202020 20202020 20202020 20202020 †              
00000000000003B0:   20202020 20202020 20202020 20202020 †              
00000000000003C0:   20202020 20202020 20202020 20202020 †              
00000000000003D0:   20202020 20202020 20202020 20202020 †              
00000000000003E0:   20202020 20202020 20202020 030000††††            ...

Slot 2, Offset 0x83e, Length 1007, DumpStyle BYTE

Record Type = PRIMARY_RECORD         Record Attributes =  NULL_BITMAP     Record Size = 1007

Memory Dump @0x00000000105BA83E

0000000000000000:   1000ec03 33202020 20202020 20202020 †..ì.3          
0000000000000010:   20202020 20202020 20202020 20202020 †              
0000000000000020:   20202020 20202020 20202020 20202020 †              
0000000000000030:   20202020 20202020 20202020 20202020 †              
0000000000000040:   20202020 20202020 20202020 20202020 †              
0000000000000050:   20202020 20202020 20202020 20202020 †              
0000000000000060:   20202020 20202020 33202020 20202020 †        3      
0000000000000070:   20202020 20202020 20202020 20202020 †              
0000000000000080:   20202020 20202020 20202020 20202020 †              
0000000000000090:   20202020 20202020 20202020 20202020 †              
00000000000000A0:   20202020 20202020 20202020 20202020 †              
00000000000000B0:   20202020 20202020 20202020 20202020 †              
00000000000000C0:   20202020 20202020 20202020 20202020 †              
00000000000000D0:   20202020 20202020 20202020 20202020 †              
00000000000000E0:   20202020 20202020 20202020 20202020 †              
00000000000000F0:   20202020 20202020 20202020 20202020 †              
0000000000000100:   20202020 20202020 20202020 20202020 †              
0000000000000110:   20202020 20202020 20202020 20202020 †              
0000000000000120:   20202020 20202020 20202020 20202020 †              
0000000000000130:   20202020 20202020 20202020 20202020 †              
0000000000000140:   20202020 20202020 20202020 20202020 †              
0000000000000150:   20202020 20202020 20202020 20202020 †              
0000000000000160:   20202020 20202020 20202020 20202020 †              
0000000000000170:   20202020 20202020 20202020 20202020 †              
0000000000000180:   20202020 20202020 20202020 20202020 †              
0000000000000190:   20202020 20202020 20202020 20202020 †              
00000000000001A0:   20202020 20202020 20202020 20202020 †              
00000000000001B0:   20202020 20202020 20202020 20202020 †              
00000000000001C0:   20202020 20202020 20202020 20202020 †              
00000000000001D0:   20202020 20202020 20202020 20202020 †              
00000000000001E0:   20202020 20202020 20202020 20202020 †              
00000000000001F0:   20202020 20202020 20202020 20202020 †              
0000000000000200:   20202020 20202020 20202020 20202020 †              
0000000000000210:   20202020 20202020 20202020 20202020 †              
0000000000000220:   20202020 20202020 20202020 20202020 †              
0000000000000230:   20202020 20202020 20202020 20202020 †              
0000000000000240:   20202020 20202020 20202020 20202020 †              
0000000000000250:   20202020 20202020 20202020 33202020 †            3  
0000000000000260:   20202020 20202020 20202020 20202020 †              
0000000000000270:   20202020 20202020 20202020 20202020 †              
0000000000000280:   20202020 20202020 20202020 20202020 †              
0000000000000290:   20202020 20202020 20202020 20202020 †              
00000000000002A0:   20202020 20202020 20202020 20202020 †              
00000000000002B0:   20202020 20202020 20202020 20202020 †              
00000000000002C0:   20202020 20202020 20202020 20202020 †              
00000000000002D0:   20202020 20202020 20202020 20202020 †              
00000000000002E0:   20202020 20202020 20202020 20202020 †              
00000000000002F0:   20202020 20202020 20202020 20202020 †              
0000000000000300:   20202020 20202020 20202020 20202020 †              
0000000000000310:   20202020 20202020 20202020 20202020 †              
0000000000000320:   20202020 20202020 20202020 20202020 †              
0000000000000330:   20202020 20202020 20202020 20202020 †              
0000000000000340:   20202020 20202020 20202020 20202020 †              
0000000000000350:   20202020 20202020 20202020 20202020 †              
0000000000000360:   20202020 20202020 20202020 20202020 †              
0000000000000370:   20202020 20202020 20202020 20202020 †              
0000000000000380:   20202020 20202020 20202020 20202020 †              
0000000000000390:   20202020 20202020 20202020 20202020 †              
00000000000003A0:   20202020 20202020 20202020 20202020 †              
00000000000003B0:   20202020 20202020 20202020 20202020 †              
00000000000003C0:   20202020 20202020 20202020 20202020 †              
00000000000003D0:   20202020 20202020 20202020 20202020 †              
00000000000003E0:   20202020 20202020 20202020 030000††††            ...

Slot 3, Offset 0xc2d, Length 1007, DumpStyle BYTE

Record Type = PRIMARY_RECORD         Record Attributes =  NULL_BITMAP     Record Size = 1007

Memory Dump @0x00000000105BAC2D

0000000000000000:   1000ec03 34202020 20202020 20202020 †..ì.4          
0000000000000010:   20202020 20202020 20202020 20202020 †              
0000000000000020:   20202020 20202020 20202020 20202020 †              
0000000000000030:   20202020 20202020 20202020 20202020 †              
0000000000000040:   20202020 20202020 20202020 20202020 †              
0000000000000050:   20202020 20202020 20202020 20202020 †              
0000000000000060:   20202020 20202020 34202020 20202020 †        4      
0000000000000070:   20202020 20202020 20202020 20202020 †              
0000000000000080:   20202020 20202020 20202020 20202020 †              
0000000000000090:   20202020 20202020 20202020 20202020 †              
00000000000000A0:   20202020 20202020 20202020 20202020 †              
00000000000000B0:   20202020 20202020 20202020 20202020 †              
00000000000000C0:   20202020 20202020 20202020 20202020 †              
00000000000000D0:   20202020 20202020 20202020 20202020 †              
00000000000000E0:   20202020 20202020 20202020 20202020 †              
00000000000000F0:   20202020 20202020 20202020 20202020 †              
0000000000000100:   20202020 20202020 20202020 20202020 †              
0000000000000110:   20202020 20202020 20202020 20202020 †              
0000000000000120:   20202020 20202020 20202020 20202020 †              
0000000000000130:   20202020 20202020 20202020 20202020 †              
0000000000000140:   20202020 20202020 20202020 20202020 †              
0000000000000150:   20202020 20202020 20202020 20202020 †              
0000000000000160:   20202020 20202020 20202020 20202020 †              
0000000000000170:   20202020 20202020 20202020 20202020 †              
0000000000000180:   20202020 20202020 20202020 20202020 †              
0000000000000190:   20202020 20202020 20202020 20202020 †              
00000000000001A0:   20202020 20202020 20202020 20202020 †              
00000000000001B0:   20202020 20202020 20202020 20202020 †              
00000000000001C0:   20202020 20202020 20202020 20202020 †              
00000000000001D0:   20202020 20202020 20202020 20202020 †              
00000000000001E0:   20202020 20202020 20202020 20202020 †              
00000000000001F0:   20202020 20202020 20202020 20202020 †              
0000000000000200:   20202020 20202020 20202020 20202020 †              
0000000000000210:   20202020 20202020 20202020 20202020 †              
0000000000000220:   20202020 20202020 20202020 20202020 †              
0000000000000230:   20202020 20202020 20202020 20202020 †              
0000000000000240:   20202020 20202020 20202020 20202020 †              
0000000000000250:   20202020 20202020 20202020 34202020 †            4  
0000000000000260:   20202020 20202020 20202020 20202020 †              
0000000000000270:   20202020 20202020 20202020 20202020 †              
0000000000000280:   20202020 20202020 20202020 20202020 †              
0000000000000290:   20202020 20202020 20202020 20202020 †              
00000000000002A0:   20202020 20202020 20202020 20202020 †              
00000000000002B0:   20202020 20202020 20202020 20202020 †              
00000000000002C0:   20202020 20202020 20202020 20202020 †              
00000000000002D0:   20202020 20202020 20202020 20202020 †              
00000000000002E0:   20202020 20202020 20202020 20202020 †              
00000000000002F0:   20202020 20202020 20202020 20202020 †              
0000000000000300:   20202020 20202020 20202020 20202020 †              
0000000000000310:   20202020 20202020 20202020 20202020 †              
0000000000000320:   20202020 20202020 20202020 20202020 †              
0000000000000330:   20202020 20202020 20202020 20202020 †              
0000000000000340:   20202020 20202020 20202020 20202020 †              
0000000000000350:   20202020 20202020 20202020 20202020 †              
0000000000000360:   20202020 20202020 20202020 20202020 †              
0000000000000370:   20202020 20202020 20202020 20202020 †              
0000000000000380:   20202020 20202020 20202020 20202020 †              
0000000000000390:   20202020 20202020 20202020 20202020 †              
00000000000003A0:   20202020 20202020 20202020 20202020 †              
00000000000003B0:   20202020 20202020 20202020 20202020 †              
00000000000003C0:   20202020 20202020 20202020 20202020 †              
00000000000003D0:   20202020 20202020 20202020 20202020 †              
00000000000003E0:   20202020 20202020 20202020 030000††††            ...

Slot 4, Offset 0x101c, Length 1007, DumpStyle BYTE

Record Type = PRIMARY_RECORD         Record Attributes =  NULL_BITMAP     Record Size = 1007

Memory Dump @0x00000000105BB01C

0000000000000000:   1000ec03 35202020 20202020 20202020 †..ì.5          
0000000000000010:   20202020 20202020 20202020 20202020 †              
0000000000000020:   20202020 20202020 20202020 20202020 †              
0000000000000030:   20202020 20202020 20202020 20202020 †              
0000000000000040:   20202020 20202020 20202020 20202020 †              
0000000000000050:   20202020 20202020 20202020 20202020 †              
0000000000000060:   20202020 20202020 35202020 20202020 †        5      
0000000000000070:   20202020 20202020 20202020 20202020 †              
0000000000000080:   20202020 20202020 20202020 20202020 †              
0000000000000090:   20202020 20202020 20202020 20202020 †              
00000000000000A0:   20202020 20202020 20202020 20202020 †              
00000000000000B0:   20202020 20202020 20202020 20202020 †              
00000000000000C0:   20202020 20202020 20202020 20202020 †              
00000000000000D0:   20202020 20202020 20202020 20202020 †              
00000000000000E0:   20202020 20202020 20202020 20202020 †              
00000000000000F0:   20202020 20202020 20202020 20202020 †              
0000000000000100:   20202020 20202020 20202020 20202020 †              
0000000000000110:   20202020 20202020 20202020 20202020 †              
0000000000000120:   20202020 20202020 20202020 20202020 †              
0000000000000130:   20202020 20202020 20202020 20202020 †              
0000000000000140:   20202020 20202020 20202020 20202020 †              
0000000000000150:   20202020 20202020 20202020 20202020 †              
0000000000000160:   20202020 20202020 20202020 20202020 †              
0000000000000170:   20202020 20202020 20202020 20202020 †              
0000000000000180:   20202020 20202020 20202020 20202020 †              
0000000000000190:   20202020 20202020 20202020 20202020 †              
00000000000001A0:   20202020 20202020 20202020 20202020 †              
00000000000001B0:   20202020 20202020 20202020 20202020 †              
00000000000001C0:   20202020 20202020 20202020 20202020 †              
00000000000001D0:   20202020 20202020 20202020 20202020 †              
00000000000001E0:   20202020 20202020 20202020 20202020 †              
00000000000001F0:   20202020 20202020 20202020 20202020 †              
0000000000000200:   20202020 20202020 20202020 20202020 †              
0000000000000210:   20202020 20202020 20202020 20202020 †              
0000000000000220:   20202020 20202020 20202020 20202020 †              
0000000000000230:   20202020 20202020 20202020 20202020 †              
0000000000000240:   20202020 20202020 20202020 20202020 †              
0000000000000250:   20202020 20202020 20202020 35202020 †            5  
0000000000000260:   20202020 20202020 20202020 20202020 †              
0000000000000270:   20202020 20202020 20202020 20202020 †              
0000000000000280:   20202020 20202020 20202020 20202020 †              
0000000000000290:   20202020 20202020 20202020 20202020 †              
00000000000002A0:   20202020 20202020 20202020 20202020 †              
00000000000002B0:   20202020 20202020 20202020 20202020 †              
00000000000002C0:   20202020 20202020 20202020 20202020 †              
00000000000002D0:   20202020 20202020 20202020 20202020 †              
00000000000002E0:   20202020 20202020 20202020 20202020 †              
00000000000002F0:   20202020 20202020 20202020 20202020 †              
0000000000000300:   20202020 20202020 20202020 20202020 †              
0000000000000310:   20202020 20202020 20202020 20202020 †              
0000000000000320:   20202020 20202020 20202020 20202020 †              
0000000000000330:   20202020 20202020 20202020 20202020 †              
0000000000000340:   20202020 20202020 20202020 20202020 †              
0000000000000350:   20202020 20202020 20202020 20202020 †              
0000000000000360:   20202020 20202020 20202020 20202020 †              
0000000000000370:   20202020 20202020 20202020 20202020 †              
0000000000000380:   20202020 20202020 20202020 20202020 †              
0000000000000390:   20202020 20202020 20202020 20202020 †              
00000000000003A0:   20202020 20202020 20202020 20202020 †              
00000000000003B0:   20202020 20202020 20202020 20202020 †              
00000000000003C0:   20202020 20202020 20202020 20202020 †              
00000000000003D0:   20202020 20202020 20202020 20202020 †              
00000000000003E0:   20202020 20202020 20202020 030000††††            ...

Slot 5, Offset 0x140b, Length 1007, DumpStyle BYTE

Record Type = PRIMARY_RECORD         Record Attributes =  NULL_BITMAP     Record Size = 1007

Memory Dump @0x00000000105BB40B

0000000000000000:   1000ec03 36202020 20202020 20202020 †..ì.6          
0000000000000010:   20202020 20202020 20202020 20202020 †              
0000000000000020:   20202020 20202020 20202020 20202020 †              
0000000000000030:   20202020 20202020 20202020 20202020 †              
0000000000000040:   20202020 20202020 20202020 20202020 †              
0000000000000050:   20202020 20202020 20202020 20202020 †              
0000000000000060:   20202020 20202020 36202020 20202020 †        6      
0000000000000070:   20202020 20202020 20202020 20202020 †              
0000000000000080:   20202020 20202020 20202020 20202020 †              
0000000000000090:   20202020 20202020 20202020 20202020 †              
00000000000000A0:   20202020 20202020 20202020 20202020 †              
00000000000000B0:   20202020 20202020 20202020 20202020 †              
00000000000000C0:   20202020 20202020 20202020 20202020 †              
00000000000000D0:   20202020 20202020 20202020 20202020 †              
00000000000000E0:   20202020 20202020 20202020 20202020 †              
00000000000000F0:   20202020 20202020 20202020 20202020 †              
0000000000000100:   20202020 20202020 20202020 20202020 †              
0000000000000110:   20202020 20202020 20202020 20202020 †              
0000000000000120:   20202020 20202020 20202020 20202020 †              
0000000000000130:   20202020 20202020 20202020 20202020 †              
0000000000000140:   20202020 20202020 20202020 20202020 †              
0000000000000150:   20202020 20202020 20202020 20202020 †              
0000000000000160:   20202020 20202020 20202020 20202020 †              
0000000000000170:   20202020 20202020 20202020 20202020 †              
0000000000000180:   20202020 20202020 20202020 20202020 †              
0000000000000190:   20202020 20202020 20202020 20202020 †              
00000000000001A0:   20202020 20202020 20202020 20202020 †              
00000000000001B0:   20202020 20202020 20202020 20202020 †              
00000000000001C0:   20202020 20202020 20202020 20202020 †              
00000000000001D0:   20202020 20202020 20202020 20202020 †              
00000000000001E0:   20202020 20202020 20202020 20202020 †              
00000000000001F0:   20202020 20202020 20202020 20202020 †              
0000000000000200:   20202020 20202020 20202020 20202020 †              
0000000000000210:   20202020 20202020 20202020 20202020 †              
0000000000000220:   20202020 20202020 20202020 20202020 †              
0000000000000230:   20202020 20202020 20202020 20202020 †              
0000000000000240:   20202020 20202020 20202020 20202020 †              
0000000000000250:   20202020 20202020 20202020 36202020 †            6  
0000000000000260:   20202020 20202020 20202020 20202020 †              
0000000000000270:   20202020 20202020 20202020 20202020 †              
0000000000000280:   20202020 20202020 20202020 20202020 †              
0000000000000290:   20202020 20202020 20202020 20202020 †              
00000000000002A0:   20202020 20202020 20202020 20202020 †              
00000000000002B0:   20202020 20202020 20202020 20202020 †              
00000000000002C0:   20202020 20202020 20202020 20202020 †              
00000000000002D0:   20202020 20202020 20202020 20202020 †              
00000000000002E0:   20202020 20202020 20202020 20202020 †              
00000000000002F0:   20202020 20202020 20202020 20202020 †              
0000000000000300:   20202020 20202020 20202020 20202020 †              
0000000000000310:   20202020 20202020 20202020 20202020 †              
0000000000000320:   20202020 20202020 20202020 20202020 †              
0000000000000330:   20202020 20202020 20202020 20202020 †              
0000000000000340:   20202020 20202020 20202020 20202020 †              
0000000000000350:   20202020 20202020 20202020 20202020 †              
0000000000000360:   20202020 20202020 20202020 20202020 †              
0000000000000370:   20202020 20202020 20202020 20202020 †              
0000000000000380:   20202020 20202020 20202020 20202020 †              
0000000000000390:   20202020 20202020 20202020 20202020 †              
00000000000003A0:   20202020 20202020 20202020 20202020 †              
00000000000003B0:   20202020 20202020 20202020 20202020 †              
00000000000003C0:   20202020 20202020 20202020 20202020 †              
00000000000003D0:   20202020 20202020 20202020 20202020 †              
00000000000003E0:   20202020 20202020 20202020 030000††††            ...

Slot 6, Offset 0x17fa, Length 1007, DumpStyle BYTE

Record Type = PRIMARY_RECORD         Record Attributes =  NULL_BITMAP     Record Size = 1007

Memory Dump @0x00000000105BB7FA

0000000000000000:   1000ec03 37202020 20202020 20202020 †..ì.7          
0000000000000010:   20202020 20202020 20202020 20202020 †              
0000000000000020:   20202020 20202020 20202020 20202020 †              
0000000000000030:   20202020 20202020 20202020 20202020 †              
0000000000000040:   20202020 20202020 20202020 20202020 †              
0000000000000050:   20202020 20202020 20202020 20202020 †              
0000000000000060:   20202020 20202020 37202020 20202020 †        7      
0000000000000070:   20202020 20202020 20202020 20202020 †              
0000000000000080:   20202020 20202020 20202020 20202020 †              
0000000000000090:   20202020 20202020 20202020 20202020 †              
00000000000000A0:   20202020 20202020 20202020 20202020 †              
00000000000000B0:   20202020 20202020 20202020 20202020 †              
00000000000000C0:   20202020 20202020 20202020 20202020 †              
00000000000000D0:   20202020 20202020 20202020 20202020 †              
00000000000000E0:   20202020 20202020 20202020 20202020 †              
00000000000000F0:   20202020 20202020 20202020 20202020 †              
0000000000000100:   20202020 20202020 20202020 20202020 †              
0000000000000110:   20202020 20202020 20202020 20202020 †              
0000000000000120:   20202020 20202020 20202020 20202020 †              
0000000000000130:   20202020 20202020 20202020 20202020 †              
0000000000000140:   20202020 20202020 20202020 20202020 †              
0000000000000150:   20202020 20202020 20202020 20202020 †              
0000000000000160:   20202020 20202020 20202020 20202020 †              
0000000000000170:   20202020 20202020 20202020 20202020 †              
0000000000000180:   20202020 20202020 20202020 20202020 †              
0000000000000190:   20202020 20202020 20202020 20202020 †              
00000000000001A0:   20202020 20202020 20202020 20202020 †              
00000000000001B0:   20202020 20202020 20202020 20202020 †              
00000000000001C0:   20202020 20202020 20202020 20202020 †              
00000000000001D0:   20202020 20202020 20202020 20202020 †              
00000000000001E0:   20202020 20202020 20202020 20202020 †              
00000000000001F0:   20202020 20202020 20202020 20202020 †              
0000000000000200:   20202020 20202020 20202020 20202020 †              
0000000000000210:   20202020 20202020 20202020 20202020 †              
0000000000000220:   20202020 20202020 20202020 20202020 †              
0000000000000230:   20202020 20202020 20202020 20202020 †              
0000000000000240:   20202020 20202020 20202020 20202020 †              
0000000000000250:   20202020 20202020 20202020 37202020 †            7  
0000000000000260:   20202020 20202020 20202020 20202020 †              
0000000000000270:   20202020 20202020 20202020 20202020 †              
0000000000000280:   20202020 20202020 20202020 20202020 †              
0000000000000290:   20202020 20202020 20202020 20202020 †              
00000000000002A0:   20202020 20202020 20202020 20202020 †              
00000000000002B0:   20202020 20202020 20202020 20202020 †              
00000000000002C0:   20202020 20202020 20202020 20202020 †              
00000000000002D0:   20202020 20202020 20202020 20202020 †              
00000000000002E0:   20202020 20202020 20202020 20202020 †              
00000000000002F0:   20202020 20202020 20202020 20202020 †              
0000000000000300:   20202020 20202020 20202020 20202020 †              
0000000000000310:   20202020 20202020 20202020 20202020 †              
0000000000000320:   20202020 20202020 20202020 20202020 †              
0000000000000330:   20202020 20202020 20202020 20202020 †              
0000000000000340:   20202020 20202020 20202020 20202020 †              
0000000000000350:   20202020 20202020 20202020 20202020 †              
0000000000000360:   20202020 20202020 20202020 20202020 †              
0000000000000370:   20202020 20202020 20202020 20202020 †              
0000000000000380:   20202020 20202020 20202020 20202020 †              
0000000000000390:   20202020 20202020 20202020 20202020 †              
00000000000003A0:   20202020 20202020 20202020 20202020 †              
00000000000003B0:   20202020 20202020 20202020 20202020 †              
00000000000003C0:   20202020 20202020 20202020 20202020 †              
00000000000003D0:   20202020 20202020 20202020 20202020 †              
00000000000003E0:   20202020 20202020 20202020 030000††††            ...

Slot 7, Offset 0x1be9, Length 1007, DumpStyle BYTE

Record Type = PRIMARY_RECORD         Record Attributes =  NULL_BITMAP     Record Size = 1007

Memory Dump @0x00000000105BBBE9

0000000000000000:   1000ec03 38202020 20202020 20202020 †..ì.8          
0000000000000010:   20202020 20202020 20202020 20202020 †              
0000000000000020:   20202020 20202020 20202020 20202020 †              
0000000000000030:   20202020 20202020 20202020 20202020 †              
0000000000000040:   20202020 20202020 20202020 20202020 †              
0000000000000050:   20202020 20202020 20202020 20202020 †              
0000000000000060:   20202020 20202020 38202020 20202020 †        8      
0000000000000070:   20202020 20202020 20202020 20202020 †              
0000000000000080:   20202020 20202020 20202020 20202020 †              
0000000000000090:   20202020 20202020 20202020 20202020 †              
00000000000000A0:   20202020 20202020 20202020 20202020 †              
00000000000000B0:   20202020 20202020 20202020 20202020 †              
00000000000000C0:   20202020 20202020 20202020 20202020 †              
00000000000000D0:   20202020 20202020 20202020 20202020 †              
00000000000000E0:   20202020 20202020 20202020 20202020 †              
00000000000000F0:   20202020 20202020 20202020 20202020 †              
0000000000000100:   20202020 20202020 20202020 20202020 †              
0000000000000110:   20202020 20202020 20202020 20202020 †              
0000000000000120:   20202020 20202020 20202020 20202020 †              
0000000000000130:   20202020 20202020 20202020 20202020 †              
0000000000000140:   20202020 20202020 20202020 20202020 †              
0000000000000150:   20202020 20202020 20202020 20202020 †              
0000000000000160:   20202020 20202020 20202020 20202020 †              
0000000000000170:   20202020 20202020 20202020 20202020 †              
0000000000000180:   20202020 20202020 20202020 20202020 †              
0000000000000190:   20202020 20202020 20202020 20202020 †              
00000000000001A0:   20202020 20202020 20202020 20202020 †              
00000000000001B0:   20202020 20202020 20202020 20202020 †              
00000000000001C0:   20202020 20202020 20202020 20202020 †              
00000000000001D0:   20202020 20202020 20202020 20202020 †              
00000000000001E0:   20202020 20202020 20202020 20202020 †              
00000000000001F0:   20202020 20202020 20202020 20202020 †              
0000000000000200:   20202020 20202020 20202020 20202020 †              
0000000000000210:   20202020 20202020 20202020 20202020 †              
0000000000000220:   20202020 20202020 20202020 20202020 †              
0000000000000230:   20202020 20202020 20202020 20202020 †              
0000000000000240:   20202020 20202020 20202020 20202020 †              
0000000000000250:   20202020 20202020 20202020 38202020 †            8  
0000000000000260:   20202020 20202020 20202020 20202020 †              
0000000000000270:   20202020 20202020 20202020 20202020 †              
0000000000000280:   20202020 20202020 20202020 20202020 †              
0000000000000290:   20202020 20202020 20202020 20202020 †              
00000000000002A0:   20202020 20202020 20202020 20202020 †              
00000000000002B0:   20202020 20202020 20202020 20202020 †              
00000000000002C0:   20202020 20202020 20202020 20202020 †              
00000000000002D0:   20202020 20202020 20202020 20202020 †              
00000000000002E0:   20202020 20202020 20202020 20202020 †              
00000000000002F0:   20202020 20202020 20202020 20202020 †              
0000000000000300:   20202020 20202020 20202020 20202020 †              
0000000000000310:   20202020 20202020 20202020 20202020 †              
0000000000000320:   20202020 20202020 20202020 20202020 †              
0000000000000330:   20202020 20202020 20202020 20202020 †              
0000000000000340:   20202020 20202020 20202020 20202020 †              
0000000000000350:   20202020 20202020 20202020 20202020 †              
0000000000000360:   20202020 20202020 20202020 20202020 †              
0000000000000370:   20202020 20202020 20202020 20202020 †              
0000000000000380:   20202020 20202020 20202020 20202020 †              
0000000000000390:   20202020 20202020 20202020 20202020 †              
00000000000003A0:   20202020 20202020 20202020 20202020 †              
00000000000003B0:   20202020 20202020 20202020 20202020 †              
00000000000003C0:   20202020 20202020 20202020 20202020 †              
00000000000003D0:   20202020 20202020 20202020 20202020 †              
00000000000003E0:   20202020 20202020 20202020 030000††††            ...

OFFSET TABLE:

Row - Offset                      
7 (0x7) - 7145 (0x1be9)            
6 (0x6) - 6138 (0x17fa)            
5 (0x5) - 5131 (0x140b)            
4 (0x4) - 4124 (0x101c)            
3 (0x3) - 3117 (0xc2d)            
2 (0x2) - 2110 (0x83e)            
1 (0x1) - 1103 (0x44f)            
0 (0x0) - 96 (0x60)                


DBCC execution completed. If DBCC printed error messages, contact your system administrator.





reference:
http://www.sqlskills.com/BLOGS/PAUL/post/Inside-the-Storage-Engine-Anatomy-of-a-record.aspx
http://www.sqlskills.com/BLOGS/PAUL/post/Inside-the-Storage-Engine-Anatomy-of-a-page.aspx
http://improve.dk/archive/2009/03/26/deciphering-a-sql-server-data-page.aspx
http://sqlsimplified.blogspot.com/2012/01/page-header_12.html




1 comment:

  1. Hi, I desire to subscribe for this web site to obtain most up-to-date updates, so where can i do it please help.
    Historical Option Prices

    ReplyDelete