スポンサードリンク

SQLServer テーブル毎のディスク使用量

SQLServerで使用するディスクのサイジングを誤っていた。
原因を突き止めるのに使用したSQL文。ところが原因は移行データであった件。

-- ワークテーブル作成
CREATE TABLE #WorkTable (
     [テーブル名(name)] NVARCHAR(128),
     [行数(rows)] CHAR(11),
     [予約領域(reserved)] VARCHAR(18),
     [利用領域(data)] VARCHAR(18),
     [インデックス領域(index_size)] VARCHAR(18),
     [空き領域(unused)] VARCHAR(18)
);

-- ワークテーブルへ登録
-- 「sp_MSforeachtable」「sp_spaceused」を使用して全テーブルに対し
-- 実行して結果をワークテーブルへインサート
-- 
INSERT INTO #WorkTable 
     EXEC sp_MSforeachtable 'sp_spaceused ''?''';

--結果出力
SELECT    *
FROM      #WorkTable 
ORDER BY  [テーブル名(name)]
/*
--  データサイズの大きいものはこっちで抽出
ORDER BY  CAST(REPLACE([予約領域(reserved)], ' KB', '') AS INT) DESC;
*/

--ワークテーブル削除
DROP TABLE #WorkTable ;