Я сделал тест на странице DBCC IND и DBCC. Engine: SQL Server 2008SQL SERVER 2008 R2 DBCC PAGE PUZZLED
Сценарий:
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)
--this показывает: 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)
шоу:
ДАННЫЕ:
Slot 0, смещение 0x60, длина 51, DumpStyle BYTE
Тип записи = PRIMARY_RECORD Запись атрибутов = NULL_BITMAP VARIABLE_COLUMNS VERSIONING_INFO Record Size = 51 Dump памяти @ 0x000000000F7EA060
0000000000000000: 70000800 01000000 03000002 001b0025 † р. .............% 0000000000000010: 00616161 61616161 61616162 62626262 † .aaaaaaaaaabbbbb 0000000000000020: 62626262 † BBBBB ........ 1 .. 0000000000000030: ††††††††††††††††††††††††††††††† ...
OFFSET ТАБЛИЦА:
Row - Смещение 0 (0x0) - 96 (0x60) я пытаюсь объяснить:
байт один 0x70 01110000
БИТ 0: SQL SERVER 2005/2008
BIT 1-3: ОСНОВНЫЕ ДАННЫЕ
БИТ 4: HAS NULL
Бит 5: HAS VAR
Бит 6: Не используется
БИТ 7: НЕ ПРИЗРАК
Второй байт
0x00: не используется
Thrid Byte
0x0008: смещение 8
длина затруднительное ИНТ, я получил значение
затем следующий байт
0300: 3 колонки
00: не нулевой
0002: 2 колонки
вар колонка endoffset 0x001B (я получил значение ааа ....)
конец колонки вар смещение 0x0025 (я получил значение BBBB ...)
, но я Донская знать значение о последних байтах ... .
пожалуйста, помогите мне, Thks намного
Изоляция моментальных снимков использует байты управления версиями? – user545607 2010-12-17 04:31:42