Ho un database MS SQL Server 2008 su un hosting condiviso e ho bisogno di ridurre lo spazio di archiviazione utilizzato il più possibile. Il mio tavolo più grande ha la seguente definizione:Dimensioni file overhead
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)
ho cercato di scoprire il numero medio di byte per record nella mia tavola. Secondo la teoria la dimensione dovrebbe essere: 4B (intestazione riga) + 2B (smallint) + 4B (smalldatetime) + 2B (smallint) che è 12 byte.
Tuttavia, quando ho eseguito il comando:
dbcc showcontig ('stage') with tableresults
Essa mostra: MinimumRecordSize = 15, MaximumRecordSize = 15 Quindi, secondo SQL Server, i byte per record è 15 e non 12 il numero 15 byte per record sembra anche corretto quando guardo lo spazio totale su disco preso dalla tabella e lo divido per numero di righe.
Cosa sta occupando i 3 byte extra ???
Grazie per la spiegazione. Sembra quindi che nel mio caso sia impossibile ridurre l'overhead di riga in SQL Server 2008 a meno di 7 byte. – jirikadlec2