快捷搜索:
来自 网络数据库 2019-11-17 13:48 的文章
当前位置: 67677新澳门手机版 > 网络数据库 > 正文

【新京葡娱乐场网址】SERVER大话存储结构

 

 

 



 

    借使转发,请申明博文来源: www.cnblogs.com/xinysu/   ,版权归 天涯论坛 苏家小萝卜 全数。望各位帮衬!

  



 

    SQLServer的数量页大小是8kb,8个接二连三的物理页组成三个区。区分混合区跟统意气风发区,混合区内能够积存分裂数据库对象的剧情,平日这一个数据库对象非常的小;统少年老成区代表区内再而三的8个数据页存款和储蓄的都是同叁个数据库对象的剧情。

 

    SQL SE卡宴VE奥德赛的磁盘读写是按页级实行,每一回I/O操作的多少最小单位是以8kb为单位的页。页是存款和储蓄单位,区是管理单位。

    数据页遵照其积累内容不黄金年代,分为八连串型,本文简要描述。

1 数据页的项目

   分化门类的多少,存款和储蓄在不一样门类的页面里,差十分少能够分为3个方向:存款和储蓄实际数据的、存储管理数据页数据的及积攒备份相关的数量,那3个反向,又各有区别的page type。详见下表。

 

Id

User_for

Page Type

Page Name

Description

1

实际上多少

数据页

Data Page

堆表只怕集中索引的卡牌节点

2

索引页

Index Page

集中索引的道岔节点依然非聚焦索引

3

LOB

LOB

用来寄放在大型对象数据类型:text , image ,varchar(max) , varbinary(max)等

4

行溢出页

Row Overflow Page

唯其如此存款和储蓄单后生可畏text或许image列数据块

5

治本数据页数据

GAM页

Global Allocation Map

拘留统后生可畏区的位图

6

SGAM页

Shared Global Allocation Map

治本混合区的位图

7

IAM页

Index Allocation Map

分配单元分配到的区

8

PFS页

Page Free Space

可用空间

9

备份相关的数目

DCM页

Differential Changed Map

自最终一条backup database 语句之后更正的区的新闻

10

BCM页

Bulk Changed Map

自最终一条backup log语句之后的大容积操作所改过的区的音讯

 

    针对备份相关数据的页面类型,这里不做详细描述。存款和储蓄实际数目标页面类型, 前边会有几篇博文详细描述。本文入眼传授下 存款和储蓄 管理数据页数据 的页面类型:GAM,SGAM,IAM,PFS 。那块,对tempdb的属性优化会有超大的援救。

    每一个数据文件的始发都分布GAM,SGAM,PFS这么些页面,它们记录了这一个数据库文件中怎么样页面已经被选取,哪些页面还尚无动用。

新京葡娱乐场网址 1

 

1.1 PFS

      PFS页,用来追踪页分配等第,存款和储蓄当前数据文件里具备页分配及可用空间的新闻,每二个数据文件的第4个数据页都以PFS,页号为1 。该页面中,每叁个字节陈诉前面每壹个数据页是不是还应该有空间能够写记录,也正是二个PFS页是8k,约有8k个字节能够描述后续各类页面包车型大巴应用情形,也便是二个PFS页,能够描述8k个数据页的利用情形,那就意味着单个PFS页能够存款和储蓄约64M数据页的可用空间景况。所以,大概每隔64Mb,就能有一个新的PFS页。

    每一个字节描述三个数据页的利用处境,四个字节有8个bits,分别第0-7位,用途如下:

  • bit 0-2位,描述该页还会有多少空闲空间
    • 0x00 is empty
    • 0x01 is 1 to 50% full
    • 0x02 is 51 to 80% full
    • 0x03 is 81 to 95% full
    • 0x04 is 96 to 100% full
  • bit 3 (0x08): 该数据页是或不是存在鬼影记录(ghost records:)?
  • bit 4 (0x10): 是否是IAM页?
  • bit 5 (0x20): 是不是是混合页?
  • bit 6 (0x40): 是或不是已分配使用?
  • Bit 7 保留,未使用,无实际意义

1.2 GAM & SGAM

    SQL SE凯雷德VE卡宴的分别为两类别型:混合区(uniform extent卡塔尔国跟统生机勃勃区(mixed extent卡塔 尔(阿拉伯语:قطر‎。

    混合区,指区内三番五次的8个数据页,分别分配给不一样的数据库对象存款和储蓄使用,这便于小表在使用的进度中,未有一下子就占用了叁个区,而是先从混合区使用,合理分配空间;统少年老成区,指的是区内连接8个页都是用来囤积同一个数码对象的,当二个表格分配了8个混合区页后,会起头分配使用统大器晚成区,防止数据分散累积在挨门逐户不再而三的数量页中。

1.2.1 GAM

  GAM页,用来追踪区的分配意况,描述每区是不是被分配,每一个区用1bit标记其分配意况。一个GAM页8k,一共有8k*8 bit,也正是大半能够标志 64000个区,约 8k*8bit*(8*8k卡塔尔国=4G 空间,所以,差不离每间距4G空中左右,就有三个GAM页来标记下三个4G的上空分配情形。

  • Bit=1,标志当前的区是悠闲的,能够用来分配;
  • Bit=0,标记当前的区以致被数据应用。

    SQL Server通过读取GAM页找到可用空间,并把那几个区或许区内的某一个页分配给二个对象。一个节制仅存款和储蓄五个比特(并不是像PFS页,PFS是三个页二个字节卡塔尔,意味着单个GAM页能够跟踪更加的多空间,在一个数据文件中,你能够在大概4GB间距的上空找到一个新GAM页。不过,数据文件中的第三个GAM页的页码总是2,因而“2:1:2”就表示tempdb中的第一个GAM页。

1.2.2 SGAM

    SGAM页,用来追踪区的分配情状,描述哪些区是混合区並且至稀少二个空闲的数据页。1bit汇报三个区,1意味着该区是混合区且至稀有贰个有空的数据页,代表该区能够分配给供给使用混合区的目的。

    SQL Server通过读取SGAM页来找到与可用空间错综的范围来把空间分配给小指标。单个SGAM页能够追踪4GB的半空中,因而,你可以在4GB的间距中找到它们,就像是GAM页同样。在数据文件中,第二个SGAM页是页3,所以“2:1:3”就意味着tempdb的首先个SGAM页。

    那么,这两类别型的数据页是什么样扶助存款和储蓄引擎对区进行拘留的吧?

  • 当存款和储蓄引擎分配三个联合区时,在GAM页中找找标志为1的页面,把标识改正为0,SGAM页中的标志位不做退换,保持为0;
  • 当存款和储蓄引擎分配二个混合区时,在GAM页中搜寻标识为1的页面,把标志改正为0,SGAM页中的标识位从0改正1;
  • 当存款和储蓄引擎寻觅一个有空闲页的混合区是,直接在SGAM页中搜索标志位1对应的数据页;若无找到,则会重新分配一个混合区。

1.2.3 IAM

    区的分配,使用GAM及SGAM处理;页的利用情状,采取PFS页管理。那么,每贰个数据库对象在相继页里只怕区里的贮存情状,由哪个人帮忙管理吗?答案是 IAM页。

    叁个表格中,IAM页用来汇报数据的布满情况,基于分配单元来描述。依照实际数指标积累情状,分为以下3种分配单元:

  • IN_ROW_DATA
    • 仓库储存堆或索引分区,即heap和B-tree。
  • LOB_DATA
    • 储存大型对象 (LOB) 数据类型,举个例子 xml、varbinary(max) 和 varchar(max)。
  • ROW_OVERFLOW_DATA
    • 仓库储存超过 8,060 字节行大小限定的 varchar、nvarchar、varbinary 或 sql_variant 列中寄存的可变长度数据。

    每种有数据的表格,至少有多少个 IAM页来保管 IN_ROW_DATA的贮存情况,假若表格里有LOB_DATA,则会多三个IAM页来治本LOB_DATA,ROW_OVERFLOW_DATA也是生机勃勃致。

2 数据页结构

    数据页有4个部分:页头、行记录、空闲空间及行偏移量。详见下图:

    新京葡娱乐场网址 2

2.1 页头

侵夺96字节,存款和储蓄跟该页面相关的系统数据。

    页头的剧情如下:
新京葡娱乐场网址 3

2.2 行记录

  • 仓库储存数据行记录以致索引数据
  • 行记录也可以在单独页面上囤积,比如行溢出多少即LOB数据

2.3 空闲空间

  • 除去页头,行记录,以至偏移量剩下的空间,提需要行记录及行偏移量使用

2.4 行偏移量

  • 行偏移是一个个小块组成的,每一个小块2个字节,表示数据行从第多少个字节后起头记录,也正是偏离页头多少偏移量开首记录
  • 存款和储蓄情势是从有往左存款和储蓄,用槽位来说述,slot 0 ,slot 1 ....
  • 行偏移量记录的开始和结果是什么样吗?该行记录从哪个字节开首,日常意况下,slot 1 从第97个字节后上马
  • 常说的集中索引存款和储蓄顺序是情理排序,指的不是行记录物理排序,而是行偏移量物理排序,数据页中,行记录都以各类未来增添的,通过改换行偏移量来到达聚焦索引的各种查找

3 查询数据页存款和储蓄格式的路线

     查看数据页存款和储蓄情势这里大约介绍二种格局:dbcc page查看以至dbcc ind查看,这五个指令都以非公开的授命,所以msdn上找不到对应的利用验证。可是,还能够透过 技巧内情的相关材质来查看剖判。

这多个指令在开拓追踪标志2588后能够查阅其参数表明,展开追踪标识3604后,能够把指令执行结果放回到客商端并非记录在错误日志中。

3.1 dbcc ind

3.1.1 语法表达

    查看ind的参数表明,展开追踪标记2588,help查询。

 

DBCC TRACEON(2588)
DBCC HELP('ind')

DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
dbcc IND ( { 'dbname' | dbid }, { 'objname' | objid }, { nonclustered indid | 1 | 0 | -1 | -2 } [, partition_number] )

DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

 

  输出的格式有4种艺术,区别方法,输出不均等。 

  • -2:重临全数IAM页,基于管理行内数据页,行溢出数据页及大指标数据页的IAM页
  • -1:再次回到全数IAM页及数据页。
  • 0:重回处理行内数据页的IAM页,行内数据页
  • 1:重回集中索引的数额页音讯及IAM页音信(同-1卡塔 尔(阿拉伯语:قطر‎
  • 2:重返第三个非集中索引的数量页消息及IAM页消息
  • 3:重返第二个非集中索引的数额页信息及IAM页音讯
  • ...
  • n:重回第(n-1卡塔 尔(阿拉伯语:قطر‎个非聚集索引的数据页音讯及IAM页消息(n>1卡塔 尔(阿拉伯语:قطر‎

新京葡娱乐场网址 4

 

3.1.2 测量试验案例

    新建表格,tbpage_c,富含大数据对象及行溢出情况。INSERT黄金年代行数据,然后解析。数据库中,每行数据私下认可存款和储蓄在同二个数据页,假设一个数目页存款和储蓄不了生龙活虎行数据,则会合世界银行溢出情形,具体可自行了然行溢出,所以在此个表格里边,设置七个数据列占用空间>8k,具体见表SQL如下,造数据的SQL如下。

 

create table tbpage_c(id int identity(1,1) not null primary key ,namea varchar(6000),nameb varchar(3000),descriptions text)

#name_a INSERT 6000个字符,name_b INSERT 3000个字符,descriptions INSERT 100个字符

INSERT INTO tbpage_c(NAMEA,nameb,descriptions)
select
      substring(stuff((select name ',' from master.dbo.spt_values for xml path('')),1,1,''),1,6000) ,
      substring(stuff((select name ',' from master.dbo.spt_values for xml path('')),1,1,''),1,3000) ,
      substring(stuff((select name ',' from master.dbo.spt_values for xml path('')),1,1,''),1,100)

 

dbcc ind('dbpage','tbpage_c',-2)

选料为-2,呈现表格的具备IAM页面。由于表格存在行溢出及大对象列,所以会有其相呼应的IAM页面,故能够看见有3个IAM,分别为 In-row data ,Row-overflow data ,LOB data。

 新京葡娱乐场网址 5

 

dbcc ind('dbpage','tbpage_c',-1)

接收为-1,再次来到全体IAM页及数据页。

  • 多少页号310,309归于 In-row data 类型。309记下实际数据,310记录In-row data实际数据页的分布情形。
  • 数量页号307,308归属 Row-overflow data 类型。307笔录实际数据,308记下 Row-overflow data 实际数据页的布满情状。
  • 数码页号305,306归属 LOB data 类型。305笔录实际多少,306笔录 LOB data  实际数据页的遍及境况。

 新京葡娱乐场网址 6

 

dbcc ind('dbpage','tbpage_c',0)

选拔为0,重临管理行内数据页的IAM页,行内数据页,故此处仅再次回到 In-row data 相关数据页。

 新京葡娱乐场网址 7

 

dbcc ind('dbpage','tbpage_c',1)

筛选为1,重临聚焦索引涉及到具备IAM页及数据页。

 新京葡娱乐场网址 8

3.2 dbcc page

3.2.1 语法表达

    查看page的参数表明,张开跟踪标志2588,help查询。

 

DBCC TRACEON(2588)
DBCC HELP('PAGE')

DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
dbcc PAGE ( {'dbname' | dbid}, filenum, pagenum [, printopt={0|1|2|3} ])

DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系

    输出的格式有4种格局,不一致方法,输出不后生可畏致。

  • 0:输出可读方式的数目页页头数据
  • 1:输出可读方式的多少页页头数据,何况还或者有槽位对应记录的十八进制内容
  • 2:输出可读格局的数码页页头数据,输出整个数据页页头的十八进制数据,整风度翩翩页的剧情都突显,富含未利用的上空。
  • 3:输出可读方式的数额页页头数据,而且满含记录中各类字段的可读情势,行溢出多少也博览会示数据内容,不过大目的则不显示内容,而是印证其累积地方!所以选项3,也是出口内容最完备的。

3.2.2 测量检验案例

    采用3.1.2的表格,分析其 IN_ROW DATA的多寡页面,page_id=309 。

    本次测验,未有利用 with tableresults解析,就算dbcc page('dbpage',1,309,0) with tableresults,结果则是已表格方式重返,能够提供早先时期管理深入分析用。

    选项为0,输出可读格式的数码页 页头数据。

 

DBCC TRACEON(3604)
dbcc page('dbpage',1,309,0)


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

PAGE: (1:309)

BUFFER:

BUF @0x000000027C0827C0

bpage = 0x000000026FA86000          bhash = 0x0000000000000000          bpageno = (1:309)
bdbid = 10                          breferences = 0                     bcputicks = 0
bsampleCount = 0                    bUse1 = 46781                       bstat = 0xb
blog = 0x212121cc                   bnext = 0x0000000000000000

PAGE HEADER:

Page @0x000000026FA86000

m_pageId = (1:309)                  m_headerVersion = 1                 m_type = 1
/* 
m_pageId 当前页面号码;m_headerVersion 版本号,始终为1;m_type 页面数据类型,1为数据页面,10为IAM页面等,具体参考pagetype
*/
m_typeFlagBits = 0x0                m_level = 0                         m_flagBits = 0xc000
/*
m_typeFlagBits 数据页和索引页为4,其他页为0
m_level 该页在索引页(B树)中的级数,0表示为叶子节点
m_flagBits 页面标志
*/
m_objId (AllocUnitId.idObj) = 35    m_indexId (AllocUnitId.idInd) = 256
/*
m_indexId (AllocUnitId.idInd) 索引ID,0 代表堆, 1 代表聚集索引, 2-250 代表非聚集索引 大于250就是text或image字段
*/
Metadata: AllocUnitId = 72057594040221696
Metadata: PartitionId = 72057594038976512                                Metadata: IndexId = 1
Metadata: ObjectId = 341576255      m_prevPage = (0:0)                  m_nextPage = (0:0)
/*
Metadata: AllocUnitId 存储单元的ID,sys.allocation_units.allocation_unit_id
Metadata: PartitionId 数据页所在的分区号,sys.partitions.partition_id
Metadata: ObjectId 该页面所属的对象的id,sys.objects.object_id
Metadata: IndexId sys.objects.object_id&sys.indexes.index_id
m_prevPage 该数据页的前一页面
m_nextPage 该数据页的后一页面
*/
pminlen = 8                         m_slotCnt = 1                       m_freeCnt = 5035
m_freeData = 3155                   m_reservedCnt = 0                   m_lsn = (39:400:68)
m_xactReserved = 0                  m_xdesId = (0:0)                    m_ghostRecCnt = 0
m_tornBits = 0                      DB Frag ID = 1
/*
pminlen  定长数据所占的字节数为多少个字节
m_slotCnt 页面中的数据的行数
m_freeCnt 页面中剩余的空间,还剩多少字节的空间
m_freeData 页面空闲空间的起始位置,一个页面8KB约等于8192字节 页面空闲空间的位置在3155
m_reservedCnt  活动事务释放的字节数
m_lsn 日志记录号
m_xactReserved 最新加入到m_reservedCnt领域的字节数
m_xdesId 添加到m_reservedCnt的最近的事务id
m_ghostRecCnt 幻影数据的行数
m_tornBits 页的校验位或者被由数据库页面保护形式决定页面保护位取代

数据库页面的 lsn
SQL Server在内存中维护一个哈希表,记录下自己所有做过写入动作的页面最新的LSN(Log Sequence Number)值。
在下次读出页面的时候,会去比较这两个值是否相等。由于LSN是个自动增长的唯一值,每个发生新修改的页面,
LSN的值会比原来的要大。所以如果读到的LSN与内存中存放的不一致,就说明上次的写入请求没有真正完成。
这时824错误也会被触发。
*/

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

 

 

慎选为1,输出可读形式的数据页页头数据,何况还也有槽位对应记录的十四进制内容。页头数据已在上文深入分析,不做管理,这里截图描述槽位对应记录

dbcc page('dbpage',1,309,1)

----------------------------------------------------------------------------------------------------------
页头信息省略中...


Slot 0, Offset 0x60, Length 3059, DumpStyle BYTE
/*
Slot 槽位号,一个槽位一行数据,这一行数据从 0x60 = 96开始,长度是 3059 bytes
下文文该行记录的16进制内容
*/
Record Type = PRIMARY_RECORD        Record Attributes =  NULL_BITMAP VARIABLE_COLUMNS
Record Size = 3059                 
Memory Dump @0x000000001F978060

/*下文为这一行记录 3059个字节内容*/
0000000000000000:   30000800 01000000 0400a003 002b80e3 0bf38b02  0............ ......
0000000000000014:   00000001 000000d5 69000070 17000033 01000001  ........i..p...3....
0000000000000028:   00000028 72707429 2c594553 204f5220 4e4f2c53  ...(rpt),YES OR NO,S
000000000000003C:   59535245 4d4f5445 4c4f4749 4e532054 59504553  YSREMOTELOGINS TYPES
中间省略...
0000000000000BCC:   7072696d 61727920 6b65792c 616e7369 5f6e756c  primary key,ansi_nul
0000000000000BE0:   6c5f6400 00d10700 00000031 01000001 000100    l_d........1.......

OFFSET TABLE:

Row - Offset                       
0 (0x0) - 96 (0x60)     

 

选项为2, 输出整个数据页页头的十六进制数据,整一页的内容都显示,包括未使用的空间。


dbcc page('dbpage',1,309,2)

----------------------------------------------------------------------------------------------------------
页头信息省略中...

/*下文为一整页的数据存储情况,包括行记录跟空闲空间,不区分槽位*/
DATA:

Memory Dump @0x0000000028178000

0000000028178000:   01010000 00c00001 00000000 00000800 00000000  ....................
0000000028178014:   00000100 23000000 ab13530c 35010000 01000000  ....#.....S.5.......
0000000028178028:   27000000 90010000 44000000 00000000 00000000  '.......D...........
000000002817803C:   00000000 01000000 00000000 00000000 00000000  ....................
0000000028178050:   00000000 00000000 00000000 00000000 30000800  ................0...
0000000028178064:   01000000 0400a003 002b80e3 0bf38b02 00000001  ......... ..........
0000000028178078:   000000d5 69000070 17000033 01000001 00000028  ....i..p...3.......(
000000002817808C:   72707429 2c594553 204f5220 4e4f2c53 59535245  rpt),YES OR NO,SYSRE
00000000281780A0:   4d4f5445 4c4f4749 4e532054 59504553 2c535953  MOTELOGINS TYPES,SYS
省略中...
0000000028178C1C:   65726963 20726f75 6e646162 6f72742c 7072696d  eric roundabort,prim
0000000028178C30:   61727920 6b65792c 616e7369 5f6e756c 6c5f6400  ary key,ansi_null_d.
0000000028178C44:   00d10700 00000031 01000001 00010000 00212121  .......1.........!!!
0000000028178C58:   21212121 21212121 21212121 21212121 21212121  !!!!!!!!!!!!!!!!!!!!
0000000028178C6C:   21212121 21212121 21212121 21212121 21212121  !!!!!!!!!!!!!!!!!!!!
省略中...
0000000028179FE0:   21212121 21212121 21212121 21212121 21212121  !!!!!!!!!!!!!!!!!!!!
0000000028179FF4:   21212121 21212121 21216000                    !!!!!!!!!!`.

OFFSET TABLE:

Row - Offset
0 (0x0) - 96 (0x60)

    选项为3, 输出可读格局的数目页页头数据,並且囊括记录中各种字段的可读格局,行溢出多少也会显示数据内容,可是大指标则不展现内容,而是评释其积攒地方!

dbcc page('dbpage',1,309,3)


-------------------------------------------------------------------------------------------------
页头信息省略中...

Slot 0 Offset 0x60 Length 3059
/*
Slot 槽位号,一个槽位一行数据,这一行数据从 0x60 = 96开始,长度是 3059 bytes
*/
Record Type = PRIMARY_RECORD        Record Attributes =  NULL_BITMAP VARIABLE_COLUMNS
Record Size = 3059
Memory Dump @0x000000002BB78060

/*下文为这一行记录 3059个字节内容*/
0000000000000000:   30000800 01000000 0400a003 002b80e3 0bf38b02  0............ ......
0000000000000014:   00000001 000000d5 69000070 17000033 01000001  ........i..p...3....
0000000000000028:   00000028 72707429 2c594553 204f5220 4e4f2c53  ...(rpt),YES OR NO,S
000000000000003C:   59535245 4d4f5445 4c4f4749 4e532054 59504553  YSREMOTELOGINS TYPES
0000000000000050:   2c535953 52454d4f 54454c4f 47494e53 20545950  ,SYSREMOTELOGINS TYP
0000000000000064:   45532028 55504441 5445292c 41463a20 61676772  ES (UPDATE),AF: aggr
0000000000000078:   65676174 65206675 6e637469 6f6e2c41 503a2061  egate function,AP: a
中间省略...
0000000000000BB8:   2c6e756d 65726963 20726f75 6e646162 6f72742c  ,numeric roundabort,
0000000000000BCC:   7072696d 61727920 6b65792c 616e7369 5f6e756c  primary key,ansi_nul
0000000000000BE0:   6c5f6400 00d10700 00000031 01000001 000100    l_d........1.......

/*下文为 在槽位0 slot 0 的 这一行记录 ,详细描述每一列的存储情况*/
Slot 0 Column 1 Offset 0x4 Length 4 Length (physical) 4
/*slot 0,第一列 在本页占用4字节,列名为id,值为1*/
id = 1

namea = [BLOB Inline Root] Slot 0 Column 2 Offset 0x13 Length 24 Length (physical) 24
/*slot 0,第2列,本页占用24字节,列名为namea
这里可以看到是发生了行溢出情况,列中没有数据,但是存储了该列的实际位置
实际大小为6000字节,值 存储在第一个文件第307页的 slot 0 槽位上*/

Level = 0                           Unused = 0                          UpdateSeq = 1
TimeStamp = 1775566848              Type = 2
Link 0

Size = 6000                         RowId = (1:307:0)

Slot 0 Column 3 Offset 0x2b Length 3000 Length (physical) 3000

nameb = (rpt),YES OR NO,SYSREMOTELOGINS TYPES,SYSREMOTELOGINS TYPES (UPDATE),AF: aggregate function,AP: applicati
on,C : check cns,...省略中...primary key,ansi_null_d
/*slot 0,第3列 ,本页占用3000字节,列名为nameb ,值为 nameb= 的后面一大段中*/

descriptions = [Textpointer] Slot 0 Column 4 Offset 0xbe3 Length 16 Length (physical) 16
/*slot 0,第4列 ,该列为text数据类型,本页占用16字节,列名为descriptions,其值存储在第一个文件的第305页的 slot 1 槽位上*/

TextTimeStamp = 131137536           RowId = (1:305:1)

Slot 0 Offset 0x0 Length 0 Length (physical) 0

/*该表格有主键 ,该行的keyhashvalue值*/

KeyHashValue = (8194443284a0)

 

    选项为3,还会有二个特殊情形,便是当解析非集中索引的时候,其再次回到会多叁个table 

 

create table tbpage(id int primary key not null identity(1,1) ,cola int,colb varchar(10),colc varchar(100))

insert into tbpage(cola,colb,colc) select object_id,type,name from sys.objects

create index ix_colc on tbpage(colc)

select * from sys.indexes where name='ix_colc'

dbcc ind('dbpage','tbpage',-1)

 

 新京葡娱乐场网址 9

 

 dbcc page('dbpage',1,319,3)

回去多了一个可读性的列表,详细描述索引的列情状及键值景况,相同的时间,原先的新闻内容也还维持。

 新京葡娱乐场网址 10新京葡娱乐场网址 11

 

 

 

参照博文:

 

仿效书籍:

《SQL SE驭胜VE奇骏 二零一二 实施与实战管理指南》
《SQL Server品质调优实战》

《SQL SE卡宴VE凯雷德 2006 手艺内部景况 存储引擎》

 

本文由67677新澳门手机版发布于网络数据库,转载请注明出处:【新京葡娱乐场网址】SERVER大话存储结构

关键词: