Размер строки над головой
У меня есть база данных MS SQL Server 2008 на разделяемом хостинге, и мне нужно максимально сократить используемое пространство для хранения. Моя самая большая таблица имеет следующее определение:
CREATE TABLE [stage](
[station_id] [smallint] NOT NULL,
[time_utc] [smalldatetime] NOT NULL,
[stage_mm] [smallint] NOT NULL,
CONSTRAINT [PK_stage] PRIMARY KEY CLUSTERED ([station_id] ASC,[time_utc] ASC)
Я попытался определить среднее количество байтов на запись в моей таблице. Согласно теории размер должен быть: 4B (заголовок строки) + 2B (smallint) + 4B (smalldatetime) + 2B (smallint), что составляет 12 байтов.
Тем не менее, когда я запустил команду:
dbcc showcontig ('stage') with tableresults
Он показывает: MinimumRecordSize = 15, MaximumRecordSize = 15 Итак, согласно SQL Server, количество байт на запись равно 15, а не 12 Число 15 байт на запись кажется правильным, когда я смотрю на общее дисковое пространство, занятое таблицей, и делю его на количество рядов
Что занимает 3 дополнительных байта ???