私は共有ホスティングに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つの余分なバイトを占めていますか?
ありがとうございます。したがって、私の場合、SQL Server 2008の行オーバーヘッドを7バイト未満に減らすことは不可能です。 – jirikadlec2