テーブルの領域を見積るSQL(少し正確でない部分もあるが・・・)
テーブル名、行数を指定するとテーブルの構造を元に使用領域を返す。
--レコード数を指定 Declare @Line Numeric(19) Set @Line = 999 --テーブル名を指定 Declare @tblname varchar(50) Set @tblname = 'hogeTbl' --ディスクサイズを計算 select table_name, row_size as レコードのサイズ, Rows_Per_Page as ページあたりのレコード数, (round(@Line / Rows_Per_Page,0,1)) as ページ数, (round(@Line / Rows_Per_Page,0,1) * 8192) as テーブルのサイズ_バイト From ( select * ,8096 / (Row_Size + 2) as Rows_Per_Page From ( select sys.tables.name as table_name, sum(case when system_type_id = 167 Then round(sys.columns.max_length * 0.5 ,0,1) --varcharの使用桁数を補正 else sys.columns.max_length end)+ 4 as Row_Size From sys.tables left join sys.columns on sys.tables.object_id = sys.columns.object_id group by sys.tables.name ) as tbl ) as tbl2 where table_name = @tblname
動作確認環境:SQL Server 2008