SQL Server에서 왜 tinyint가 9B 행에 저장되어 있습니까? 어떤 이유로 NULL 비트 맵 마스크의 끝에 1 바이트가 더있는 것 같습니다.
tempdb 사용; 가다 테이블 작성 tbl ( TINYINT NOT NULL ); 가다 tbl에 삽입 (i) 값 (1); 가다 DBCC IND ( 'tempdb', 'tbl',-1); 가다 DBCC TRACEON (3604); -페이지 덤프가 콘솔로 이동합니다 가다 DBCC 페이지 ( 'tempdb', 1,168,3); 가다
결과 (DBCC PAGE의 최하위 바이트가 먼저 표시되어 바이트를 반전 시켰습니다).
Record Size = 9B
10000500 01010000 00
TagA = 0x10 = 1B
TagB = 0x00 = 1B
Null Bitmap Offset = 0x0005 = 2B
Our integer column = 0x01 = 1B
Column Count = 0x0001 = 2B
NULL Bitmap = 0x0000 = 2B (what!?)