我有一个共享主机上的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服务器,每个记录的字节数是15而不是12 数15个字节每个记录看起来也是正确的,当我查看表中的总磁盘空间并将其除以行数。
什么是占用3个额外的字节???
谢谢你的解释。所以看来,在我的情况下,不可能将SQL Server 2008中的行开销减少到少于7个字节。 – jirikadlec2