2010-12-17 6 views
0

Я сделал тест на странице 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 намного

ответ

0

Это 14-байтовый версий тег [timestamep, указатель в данный TempDb].

+0

Изоляция моментальных снимков использует байты управления версиями? – user545607 2010-12-17 04:31:42

0

Каждая строка базы данных может использовать до 14 байтов в конце строки для информации о версии для строки. Информация о версии строки содержит номер последовательности транзакций транзакции, в которой была установлена ​​версия, и указатель на версию. Эти 14 байтов добавляются при первом изменении строки или при добавлении новой строки в любом из этих условий:

Параметры READ_COMMITTED_SNAPSHOT или ALLOW_SNAPSHOT_ISOLATION включены.

Таблица имеет триггер.

Используется множество активных наборов результатов (MARS).

Операции по созданию индексации в настоящее время выполняются на столе.

Смежные вопросы