Menu
Woocommerce Menu

Server把数据记录存在数据页(Data,  当我们创建一个数据库的时候

0 Comment


数据页是包罗已增添到数据库表中的客户数据的构造。

小编们都很了解SQL Server用8KB
的页来积攒数据,况兼在SQL Server里磁盘 I/O 操作在页级施行。也便是说,SQL
Server
读取或写入全数数据页。页有例外的等级次序,像数据页,GAM,SGAM等。在此小说里,让咱们联合来领悟下数据页结构。

【IT168专稿】聊到GAM和SGAM,我们只好从数据库的页和区谈起。一个数据库由客户定义的半空中组成,这一个空间用来永恒存款和储蓄客户对象,比方数据库管理音信、表和目录。那一个空中被分配在二个或八个操作系统文件中。

《Microsoft Sql server 二〇一〇 Internals》索引目录:


如前所述, 数据页有三种, 各种都是区别的格式存款和储蓄数据。

SQL
Server把数据记录存在数据页(Data
Page卡塔 尔(英语:State of Qatar)里。数据记录是堆表里、聚焦索引里叶子节点的行。

  当大家创立二个数据库的时候,举个例子以缺省的不二诀窍CREATE DATABASE
TESTDB,SQLServer自动帮大家创造好如下七个数据库文件。

《Microsoft Sql server 2008Internal》读书笔记–目录索引

–1 DBCC FLUSHPROCINDB

SQL server 有行内数据页、行溢出数据页和 LOB 数据页。

数码页由3个部分构成。页头(标头卡塔 尔(阿拉伯语:قطر‎,数据区(数据行和可用空间卡塔尔国及行偏移数组。

图片 1
 

 

扼杀SQL SERVEENCORE服务器内部存款和储蓄器中某些数据库的蕴藏进度缓存内容
用法 DBCC FLUSHPROCINDB(db_id)

与 SQL server 中的全部别的类型的页同样, 数据页的大大小小固定为 8 KB
或8192字节。

图片 2

  那多少个数据文件是确实的操作系统文本,在那之中叁个是叫行数据文件,用来累积数据库的各样对象,此外二个是日记文件,平素记录数据变动的进度。

 

 

它们由三最首要组件组成: 页面页眉、数据行和行偏移量数组, 如图6-4 所示。

在大家商议在SQL
Server里,数据页内部结构具体是什么在此之前,我们来创立二个表并插入一些记录。

  从逻辑角度来讲,数据库的超小存款和储蓄单位为页即8kb。

上篇大家注重学习了元数据(metadata)的仓库储存及选择目录视图来查询那个音信,今日,大家一而再一连读书数据页(Data
Pages)。


图片 3

 

  数据库被分为若干逻辑页面(每个页面8KB),而且在每一种文件中,全数页面都被接连地从0到x编号,个中x是由文件的朗朗上口决定的。我们得以由此点名贰个数据库ID、三个文件ID、二个页码来引用任何一个数据页。各样数据页则用来存款和储蓄表和目录,以致相关的数据库管理消息。

 数据页(Data
pages)是含有已经增多到数据库的表中的顾客数据的布局。正如前方所寓指标,数据页有三类,每类数据页以不一致的章程存储数据。复习一下,分别是in-row
data pages、row-overflow data pages和LOB data
pages。与别的品类的page相仿,data pages也是定位的8K朗朗上口或8192
bytes。它由三类组件组成:the page Header,data rows和the row offset
array,如下图所示:

–2 DBCC page

 

 1 USE [InternalStorageFormat]
 2 GO
 3 
 4 IF EXISTS ( SELECT  *
 5             FROM    sysobjects
 6             WHERE   id = OBJECT_ID(N'[dbo].[Customers]')
 7                     AND OBJECTPROPERTY(id, N'IsUserTable') = 1 )
 8     DROP TABLE dbo.Customers
 9 
10 CREATE TABLE Customers
11 (
12    FirstName CHAR(50) NOT NULL,
13    LastName CHAR(50) NOT NULL,
14    Address CHAR(100) NOT NULL,
15    ZipCode CHAR(5) NOT NULL,
16    Rating INT NOT NULL,
17    ModifiedDate DATETIME NOT NULL,
18 )
19 GO
20 
21 
22 INSERT INTO dbo.Customers
23         ( FirstName ,
24           LastName ,
25           Address ,
26           ZipCode ,
27           Rating ,
28           ModifiedDate
29         )

30 VALUES  ( 'Woody' , -- FirstName - char(50)
31           'Tu' , -- LastName - char(50)
32           'ZUOQIAO YOUXI TOWN LINHAI CITY' , -- Address - char(50)
33           '0000' , -- ZipCode - char(5)
34           1 , -- Rating - int
35           '2015-05-07 10:09:51'  -- ModifiedDate - datetime
36         )
37         go 2

  大家本着下边数据文件的不二诀要能够找到该公文,观看一下新建的数据文件的分寸为:

图片 4

dbcc traceon(3604)

页标题

方今我们要寻找SQL
Server给这些表分配的页有怎么样,这些将在选用非文书档案的授命DBCC
IND。
它的语法如下:

  2.18 MB (2,293,760 字节)=2,293,760b/8kb=280个页面=35个区

1、Page Header

dbcc page(northwind,1,100,1)

 

DBCC IND
命令用于查询三个储存对象的当中存款和储蓄结构新闻,该命令有4个参数,
前3个参数必得钦点。语法如下:
DBCC IND ( { ‘dbname’ | dbid }, { ‘objname’ | objid },{ nonclustered
indid | 1 | 0 | -1 | -2 } [, partition_number] )
率先个参数是数据库名或数据库ID。
第二个参数是数据库中的对象名或对象ID,对象足以是表也许索引视图。
其四个参数是二个非集中索引ID大概 1, 0, 1, or 2. 值的意思:
 0: 只展现对象的in-row data页和 in-row IAM 页。
 1: 彰显对象的任何页, 富含IAM 页, in-row数据页, LOB 数据页row-overflow
数据页 . 如若央浼的目的饱含聚焦所以则索引页也蕴含。
 -1: 突显整个IAM页,数据页, 索引页 也满含 LOB 和row-overflow 数据页。
 -2: 显示任何IAM页。
 Nonclustered index ID:彰显索引的整个 IAM页, data页和索引页,包括LOB和
row-overflow数据页。
为了配合sql server
二〇〇一,第七个参数是可选的,该参数用于钦定四个分区号.倘若不给定值或然给定0,
则展现任何分区数据。
和DBCC PAGE不一致的是, SQL Server运营DBCC
IND无需张开3604追踪标识.

  数据库实行空间管理的小小单位为区(extents)。

正如上海教室所示,各个data page (除去96 bytes,还应该有8096 bytes存放data,row
overhead和row offset)。你可以选取下边包车型客车DBCC Page命令来查阅。

/*询问northwind 的数额的第101个页面包车型地铁新闻*/

如图6-4 所示, 页题目侵占每一种数据页的前玖拾玖个字节
(为数量、行花费和行偏移保留80玖拾捌个字节)。表6-5
列出了反省页标题时显示的有的音信。

我们来试行下列的下令:

  三个区由8个逻辑上连年的页面组成(64KB的长空)。为了能够更平价地分配空间,SQL
Server 2008不会为小量的数据向数据表分配整区的空中。SQL Server
二〇一〇有二种等级次序的区。

2、Data Rows for in-Rows

/*DBCC Page ({dbid|dbname},filenum,pagenum[,printopt])

图片 5

1 DBCC IND('InternalStorageFormat','Customers',-1)

  统生龙活虎类型的区
这么些区为单个对象具备,区中全体的8个数据页只可以被所属对象使用。

 Page Header的下边是row data,单个数据行最大能够贮存8060 bytes的in-row
data,那正是原先数据行无法超过8060限定的来头!有个别行也能够在独立的页面(pages)中存放row-overflow
data和LOB数据,存款和储蓄在一个加以的page变量中的行数决意于表结构及数量被贮存的构造。二个具备一切牢固长度列的表每页能储存相通的行数。三个享有可变长度列的表在页中寄存不相同的行数以适应数据的实在尺寸。保持行长度尽量短,允许更加多的行以适应页面,减弱了I/O,修正了高速缓存命中率(cache-hit
ratio)。

?

 

SQL
Server会给大家如下的出口结果:
图片 6

  混合类型的区 这一个区能为最多8个目的共享。

就此,作为系统架构师或数据库Designer,实在有必要掌握这几个啊。邀月深有心得。呵呵。程序很烂,是后天的,但数据结构不客观,那是先特性的,两个的杀伤力肖似惊人!

切实参数描述如下:

行内数据的数据行

能够看来有2条记下,一条记下为页面类型(PageType卡塔尔国为10的页和一条记下为页面类型(PageType卡塔 尔(英语:State of Qatar)为1的页。页面类型(PageType卡塔 尔(阿拉伯语:قطر‎10是IAM页,页面类型(PageType)1是数据页,它的页ID是79.

  SQL
Server为新的表或索引从混合类型的区中分配页面。当该表或索引增进到8个页面时,现在全部的分配都选择统豆蔻梢头类型的区。

3、Row Offset Array

dbid: 包括页面包车型大巴数据库ID

 

至于数据库页类型如下所示:

  当一张表或叁个目录需求越来越多的空间时,SQL
Server要求找到可以用来分配的上空。假诺该表或索引全体依然有限8个页面,SQL
Server必得找到能够用来分配的搅动类型区构成的半空中。如若表或索引有8个页面或更加大,SQL
Server必须找到二个恣意的联合类型的区。

行偏移数组(row offset array) 是叁个2-byte
entries的块(block),每一个项表达对应数据行在页开头的舞狮,每行(row)有二个两字节的项。就算那个字节不会和数据一同存储在行中,它们能影响适应page的行数。行偏移数组表露了行在页上的逻辑顺序。比方,就算多少个表有一个聚焦索引,SQL
Server按聚焦索引键的各种存放数据。那并不意味着数据是情理按集中索引键的依次贮存,而是行偏移数组的Slot
0 指向聚焦索引键系列的第豆蔻梢头行(row),Slot 1
指向第二行,等等。当咱们要急迅查看实际页的时候,这个行的大意地方只怕在页的别的义务。

dbname:蕴涵页面包车型客车数据库的名号

页题前段时间面是积存表实际数据行的区域。单个数据行的最大尺寸为8060字节的行内数据。

  • 1 Data page
    堆表和集中索引的卡片节点数据
  • 2 Index page
    聚集索引的非叶子节点和非聚焦索引的保有索引记录

  • 3 Text mixed 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
    排序时所用到的有时页,排序中间操作存款和储蓄数据用的。

  • 8 GAM
    page

    全局分配映射(Global Allocation Map,GAM卡塔 尔(阿拉伯语:قطر‎页面
    那个页面记录了怎么区已经被分配并用作何种用处。

  • 9 SGAM
    page

    共享全局分配映射(Shared Global Allocation Map,GAM卡塔尔国页面
    那几个页面记录了哪些区当前被作为混合类型的区,而且那一个区需包罗起码多少个未使用的页面。

  • 10
    IAM page
     有关每一种分配单元中表或索引所运用的区的新闻

  • 11 PFS
    page

     有关页分配和页的可用空间的音讯

  • 13 boot page
    记录了关于数据库的音讯,仅存于各类数据库的第9页

  • 15 file header
    page 
    笔录了有关数据库文件的新闻,存于每一个数据库文件的第0页

  • 16 DCM
    page

    记录自从上次全备以来的多寡变动的页面,以备差别备份

  • 17 BCM
    page
     有关各类分配单元中自最后一条
    BACKUP LOG 语句之后的大体量操作所矫正的区的消息

  SQL
Server使用两种新鲜类别的页面来记录哪些区已经被分配出去了,哪些类型(混合类型或合併类型)的区可供使用:

 检查数据页(Exampling Data
Pages)

filenum:包括页面包车型大巴文书编号

行仍然是能够在独立的页上存款和储蓄行溢出和 LOB 数据。

今天大家来拜会79号项目为1的数目页里存放的数目,这一个就要用到DBCC
PAGE命令,它的语法如下:

  全局分配映射(Global Allocation Map,GAM)页面
那些页面记录了什么区已经被分配并用作何种用场。三个GAM页面在它所遮掩空间里针对每八个区都有一个数额位。假诺数量位为0,那么相应的区正在利用;要是该多少位为1,那么该区为工商业自由贸易区。一个GAM页面除了页面头部和其余部分须求记入的支出大概有8
000字节或然说64 000位空间可用,所以每个GAM页面能够覆盖64
000个区,也正是大致4GB的数据。这表示多个文本的每4GB空间对应三个GAM页面。

 DBCC
page命令能够帮大家询问:MSDN文档中中从未提供此命令,微软真的很要命啊。语法为:

pagenum:文件内的页面

在给定页上囤积的行数依照表结交涉仓库储存的数额而生成。

dbcc page
命令读取数据页结构的一声令下DBCC Page。
该命令为非文书档案化的指令,具体如下:
  DBCC Page ({dbid|dbname},filenum,pagenum[,printopt])
  具体参数描述如下:
  dbid 饱含页面包车型大巴数据库ID
  dbname 满含页面包车型地铁数据库的称谓
  filenum 包括页面包车型大巴文书编号
  pagenum 文件内的页面
  printopt 可选的出口选项;接受在那之中一个值:
  0:私下认可值,输出缓冲区的标题和页面标题
  1:输出缓冲区的标题、页面标题(分别出口每少年老成行),以至行偏移量表
  2:输出缓冲区的标题、页面标题(全体出口页面),以至行偏移量表
  3:输出缓冲区的题目、页面标题(分别出口每生龙活虎行),以至行偏移量表;每意气风发行
  后跟分别列出的它的列值
  要想见到那个输出的结果,还索要设置DBCC TRA主任N(3604)。

  分享全局分配映射(Shared Global Allocation Map,SGAM)页面
那个页面记录了哪些区当前被视作混合类型的区,何况这个区需包涵起码叁个未利用的页面。就好像多个GAM页面,每一个SGAM页面覆盖了大概64
000个区,也正是大概4GB的数额。二个SGAM页面在它所覆盖空间里针对每三个区皆有多个数码位。假设数据位为1,那么相应的被选拔的区为混合类型,何况该区有大器晚成对随意页面;若是数据位为0,那么相应的区不是二个错落类型的区,或许固然是多少个混合类型的区,然则全部的页面皆已被利用了。

DBCC PAGE ({dbid | dbname},filenum,pagenum[,printopt])

printopt:可选的输出选项;选用此中一个值:

有着全部固定长度列的表始终能够累积每页相似的行数;

我们来进行下列的通令:

  表4-2展示了依据每一个区脚下的选择境况,在GAM和SGAM中该区所对应的比特位方式。

里面,最后一个参数能够是0,1,2,3,默感到0,有乐趣的爱人能够相比较下那么些参数的分别。大家作个示例:

0:暗许值,输出缓冲区的标题和页面题目

可变长度行能够依赖输入数据的骨子里尺寸, 存款和储蓄尽恐怕多的行。

1 DBCC TRACEON(3604)
2 DBCC PAGE(InternalStorageFormat,1,79,3)
3 GO    
区的当前使用情况 GAM比特位设置 SGAM比特位设置
自由,未使用 1 0
统一类型或已全部使用的混合区 0 0
含有自由页面的混合区 0 1

DBCC traceON(3604)
go
–查询testdb数据库的第1个公文的第157页的数据页
DBCC PAGE (testdb,1,157,1);
GO

1:输出缓冲区的标题、页面标题(分别出口每风度翩翩行),甚至行偏移量表

保持行长越来越短能够使越来越多行切合页面, 进而收缩 i/o
并追加所需数据在缓存中的大概。

SQL
Server会给我们包涵4个部分的出口。第4局地是BUFFE纳瓦拉,里面是一些内部存款和储蓄器分配音信,对此大家超少兴趣。下风流浪漫部分是定位96
bytes大小的页头(page header卡塔尔,页头(page
header卡塔 尔(英语:State of Qatar)会附近如下呈现:

  假如SQL
Server需求找到多少个新的通通未有应用的区,那么它能够利用别的三个在GAM页面中对应的比特位值为1的区。尽管SQL
Server供给找到四个富有可用空间(有三个或八个随机页面)的混合类型的区,那么它能够搜索二个对应的GAM中的值为0、SGAM中的值为1的区。假使不设有有可用空间的插花类型的区,SQL
Server会使用GAM页面来查找三个崭新的区并将其分配为混合类型的区,然后采取该区中的生龙活虎页。假使根本未曾工商业自由贸易区,那么这些文件已经满了。

询问结果如下:

2:输出缓冲区的标题、页面题目(全体出口页面),以至行偏移量表

 

图片 7

第0页 第1页 第2页 第3页 第4页 第5页 第6页 第7页
m_type=15 m_type=11 m_type=8 m_type=9 m_type=0 m_type=0 m_type=16 m_type=17
头文件页 PFS页 GAM页 SGAM页 保留页 保留页 DCM页 BCM页

图片 8

3:输出缓冲区的题目、页面标题(分别出口每风姿洒脱行),以致行偏移量表;每风流罗曼蒂克行后跟分别列出的它的列值

行偏移量数组

页头相关字段的意义:

  SQL
Server能够高效地锁定三个文本中的GAM页面,因为它连接位于任何数据库文件的第三页上(页码为2)。SGAM页面是在第四页上(页码为3)。下一个GAM页面出今后第一个GAM页面(页码为2)以往的每511
2贰21个页面中,何况下二个SGAM页面出以后率先个SGAM页面(页码为3)以后的每511
2二二十个页面中。每一个数据库文件的页码为0的页面是文本头页面,并且每一个文件独有一页。页码0是头文件页,页码1是页面自由空间页(Page
Free Space,PFS)。

图片 9

*/

 

  • Page @0x08F84000      
         同BUFFER中的bpage地址
  • m_pageId
    = (1:79)              数据页号     
  • m_headerVersion
    = 1         头文件版本号,一向为1          
  • m_type =
    1                          页面类型,1为多少页面
  • m_typeFlagBits
    = 0x4         数据页和索引页为4,其余页为0        
  • m_level =
    0                         该页在索引页(B树卡塔尔中的级数
  • m_flagBits
    = 0x8000          页面标记
  • m_objId
    (AllocUnitId.idObj) = 46                       同Metadata: ObjectId 
               
  • m_indexId
    (AllocUnitId.idInd) = 256                  同Metadata:
    IndexId
  • Metadata:
    AllocUnitId =
    72057594040942592  存款和储蓄单元的ID,sys.allocation_units.allocation_unit_id                              

  • Metadata:
    PartitionId =
    72057594039304192   数据页所在的分区号,sys.partitions.partition_id                             

  • Metadata:
    IndexId = 0                                      
     页面包车型客车索引号,sys.objects.object_id&sys.indexes.index_id

  • Metadata:
    ObjectId = 277576027                    
     该页面所属的靶子的id,sys.objects.object_id
  • m_prevPage

    (0:0)                  该数据页的前生机勃勃页面;首要用在数据页、索引页和IAM页

  • m_nextPage
    = (0:0)                
     该数据页的后一页面;首要用在数据页、索引页和IAM页

  • pminlen =
    221                          定长数据所占的字节数
  • m_slotCnt
    = 2                           页面中的数据的行数
  • m_freeCnt
    = 7644                    页面中剩下的空间
  • m_freeData
    = 544                    从第叁个字节到终极贰个字节的空中字节数

  • m_reservedCnt
    = 0                   活动职业释放的字节数

  • m_lsn =
    (255:8406:2)                日志记录号
  • m_xactReserved
    = 0                 最新参预到m_reservedCnt领域的字节数
  • m_xdesId
    = (0:0)                    
      添加到m_reservedCnt的这两天的业务id
  • m_ghostRecCnt
    = 0                 幻影数据的行数
  • m_tornBits
    = 0                      
      页的校验位依旧被由数据库页面爱戴格局决定分页爱戴位代表

  在SQLServer二零一零的每八个数据库中的前八页顺序都以永久的。

除此以外,还恐怕有更详细的第X到第X行的数额显示。越来越多音讯,请查看:


行偏移量数组是2字节项的块, 各类条约表示相应数据行早先的页面上的偏移量。

再来看下页面相关分配意况:

  除了第9页为数据库的BOOT页以外,从第8页到第173页为SQLServer二〇〇八内部系统表的连带存款和储蓄新闻,然后从第174页到第279页为未分配页面。因为第生机勃勃页从0最早,所以刚刚280页,即和我们看来的数据库数据文件的大小完全相等。

 http://support.microsoft.com/?scid=kb%3Ben-us%3B83065&x=15&y=13http://blogs.msdn.com/sqlserverstorageengine/archive/2006/12/13/More-undocumented-fun\_3A00\_-DBCC-IND\_2C00\_-DBCC-PAGE\_2C00\_-and-off\_2D00\_row-columns.aspx

–3 DBCC checkalloc

每行在此个数组中都有贰个2字节的条约 (正如前面所研讨的,
当您读书每行所需的13个开荒字节时)。

 图片 10

第8页

 http://support.microsoft.com/?scid=kb%3Ben-us%3B83065&x=8&y=12

DBCC checkalloc(northwind)

就算这几个字节未有存款和储蓄在多少行中, 但它们确实会潜濡默化符合页面包车型大巴行数。

  • GAM (1:2) = ALLOCATED
                                                   
      在GAM页上的分配情形
  • SGAM (1:3) = ALLOCATED
                                                 
      在SGAM页上的分配景况
  • PFS (1:1) = 0x61
    MIXED_EXT ALLOCATED 
    50_PCT_FULL 在PFS页上的分配情形,该页为50%满,                       

  • DIFF (1:6) =
    CHANGED

  • ML (1:7) = NOT
    MIN_LOGGED   

第8页

询问结果分为四部分:BUFFER、PAGE HEADER、DATA、和OFFSET
TABLE
(即真实的offset array) ,

/*自己商酌钦点数据库的种类表内和表间的生机勃勃致性

 

接下去就是用来存放实际数指标槽(slot卡塔 尔(英语:State of Qatar),每条记下贮存贰个槽(slot卡塔 尔(阿拉伯语:قطر‎里。0号槽在页里具备第1条数据,1号槽具有第2条数据,由此及彼。通过上边包车型的士图形,你能够看到我们记录大小是224
bytes,217 bytes(50+50+100+5+4+8卡塔 尔(英语:State of Qatar) 的定长和7 bytes
的连串行费用。

第8页

 
注意,要想获得相似上海体育场地的查询的细心音讯,一定要筛选展开TRA老董N开关,语法为:

checkalloc是反省钦赐数据库,看其独具科学分配的页和还没分配的页的情状。

行偏移量数组提示页上行的逻辑顺序。

图片 11

第N页

DBCC traceON(3604)
GO

若未钦点数据库名,则checkalloc检查当前数据库。checkalloc会回来已分配的和动用的空间数据。

举例, 要是表具备集中索引, SQL server 将按聚焦索引键的顺序存款和储蓄这几个行。

页的最后大器晚成局地是行偏移数组表,大家能够用参数为1的DBCC
PAGE命令来,在出口音讯的平底得到。

第173页

有关DBCC TRA主任N (Transact-SQL)的越来越多用法,请仿效MSDN

checkalloc的缺省情势为nofix,要运用fix选项,必得把数据库置于单顾客形式。

那并不意味着行按集中索引键的相继物理地囤积在页面上。

实行如下的授命:

第279页

举个例子你想获知系统硬件的相关音讯,可以通过DBCC
traceON(3205)张开追踪开关。
 

*/

反倒, 偏移量数组中的插槽0引用聚焦索引键顺序中的第黄金时代行, 插槽1引用第二行,
就那样类推。

1 DBCC TRACEON(3604)
2 DBCC PAGE(InternalStorageFormat,1,79,3)
3 GO    

m_type=1

 数据行的构造(the structure of data rows)
贰个表的通用结构如下图所示:


正如您在检查实际上页面时所看到的那样,
这一个行的情理地方能够放在页面的别样岗位。

SQL
Server在输出音信的底层,给大家如下的信息:

m_type=13

 图片 12

–4 DBCC checkcatalog

 

图片 13

m_type in (1,2,10)

 此中:状态位A包括一个有关行的位图新闻。这些bits好似下含义:

DBCC checkcatalog(northwind)/*

查阅数据页

以此行偏移表,应该从下往上读。每条槽条约是二个2
bytes长的指针指向页里槽偏移量。这里大家插入了2条记下,所以表里有2个槽条目款项。第1条记下指向第96
bytes,无独有偶在页头后。这些行偏移表能够协理我们管理页面包车型客车笔录。在页里的行偏移表里,每条记下须要2
bytes的高低来积攒。于此形似,在堆表上创立的非集中索引,每一种非聚焦索引行里都包蕴二个物理指针映射回堆表里的行记录。那些物理指针是[文件号:页号:槽号](file:page:solt卡塔尔的布局,由此在读取页的时候,可以找到堆表里的对应行,再通过行偏移表里槽号里的偏移量,就足以在页里读取到相应的行记录。假诺大家要改过页中间的笔录,我们并不一定供给整合全部页,大家要是修正偏移表里偏移量就可以。

N/A

      Bit 0 Versioning information; in SQL Server 2008, it’s always 0.
      Bits 1 through 3 Taken as a 3-bit value, 0 indicates a primary record, 1 indicates a forwarded record, 2 indicates a forwarded stub, 3 indicates an index record, 4 indicates a blob fragment, 5 indicates a ghost index record, and 6 indicates a ghost data record.
      Bit 4 Indicates that a NULL bitmap exists; in SQL Server 2008, a NULL bitmap is always present, even if no NULLs are allowed in any column.
      Bit 5 Indicates that variable-length columns exist in the row.
      Bits 6 Indicates that the row contains versionings information.
      Bits 7 Not used in SQL Server 2008.

反省批定数据库的系统表内和种类表间的黄金年代致性

 

图片 14

Data页

状态位B字段中只使用一位,表示该记录是一条备份转发记录。

*/

能够采纳 DBCC 页命令查看数据页的原委, 

在页头我们看看近期页面还应该有7644
bytes可以用,我们协同来注明下。

Boot页

下表显示了表数据行的仓储新闻:


发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章

网站地图xml地图