【发布时间】:2010-12-17 03:44:54
【问题描述】:
我做了一个关于 DBCC IND 和 DBCC page 的测试。 引擎:SQL Server 2008
脚本:
CREATE TABLE dbo.t2
(
ID int,
Col1 varchar(10),
Col2 varchar(20)
);
INSERT INTO dbo.t2 SELECT 1,REPLICATE('a',10),REPLICATE('b',10)
DECLARE @DBID int,@TableID int;
SELECT @DBID=DB_ID(),@TableID=OBJECT_ID('dbo.t2');
DBCC IND(@DBID,@TableID,-1)
——这表明: 1 274 1 278 1307151702 0 1 72057594039107584 行内数据1
DBCC TRACEON (3604)
--DBCC PAGE (@DBID, 1,22,3)
--then dump the page info
DBCC PAGE(@DBID, 1,274,1)
显示:
数据:
插槽 0,偏移量 0x60,长度 51,DumpStyle BYTE
记录类型 = PRIMARY_RECORD 记录属性 = NULL_BITMAP VARIABLE_COLUMNS VERSIONING_INFO 记录大小 = 51 内存转储@0x000000000F7EA060
0000000000000000: 70000800 01000000 03000002 001b0025 †p.......% 0000000000000010: 00616161 61616161 61616162 62626262 †.aaaaaaaaaaabbbbb 0000000000000020: 62626262 62000000 00000000 00310000 †bbbbb........1.. 0000000000000030: 00000†††††††††††††††††††††††††††††††††††††††††††...
偏移表:
行 - 偏移 0 (0x0) - 96 (0x60) 我试着解释一下:
一个字节 0x70 01110000
位 0:SQL SERVER 2005/2008
位 1-3:主要数据
第 4 位:有 NULL
第 5 位:有 VAR
第 6 位:未使用
第 7 位:不是幽灵
第二个字节
0x00:未使用
第三字节
0x0008 :偏移量 8
固定长度 int ,我得到值 1
然后是下一个字节
0300 : 3 列
00 : 不为空
0002 :2 列
var column endoffset 0x001B(我得到值 aaa....)
var 列结束偏移量 0x0025(我得到值 bbbb...)
但是,我不知道最后一个字节的含义......
请帮帮我,谢谢
【问题讨论】:
标签: sql-server-2008 dbcc