ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

QNo.3291219 SQL2000サーバーのテーブル容量を確認したい
質問者:noname#68596 SQL2000サーバーの各テーブルの容量(〜メガバイト等)を確認する方法は、タスクパッドから確認する以外にありますか?出来れば一度にすべてのテーブル容量を、一覧で取得出来るコマンドなどがあれば良いのですが・・・。
困り度:
  • 困っています
質問投稿日時:
07/08/27 16:49
この質問に対する回答は締め切られました。

回答良回答20pt

ANo.4 補足です。早い話が、
「sp_spaceused テーブル名」
でテーブル単位の容量を確認することができますってことです。
前回提示したサンプルは、DB内にあるすべてのテーブルの
容量を1つずつ表示しているというサンプルになります。
ご参考までに。
回答者:kero_mio
種類:回答
どんな人:経験者
自信:参考意見
回答日時:
07/09/03 10:37
この回答へのお礼お礼のお返事が大変遅くなってしまいすみません。
こちらの件、お蔭様で解決いたしました。

ありがとうございました。

回答

ANo.3 DBじゃなくて、テーブルでしたか。失礼しました。
それなら、下記で、できますが、いかがでしょうか?

declare cur cursor for
select [name] from dbo.sysobjects where xtype='U';

declare @tableName nvarchar(1552)

open cur;
fetch next from cur into @tableName;

WHILE @@FETCH_STATUS = 0
BEGIN
exec('sp_spaceused ' + @tableName)
FETCH NEXT FROM cur into @tableName;
END;

CLOSE cur;
DEALLOCATE cur;

後は、このSQLスクリプトをBATファイルなどでキックして
あげるなり、ストアドにするなり、好きにできると思います。
ご参考までに。
回答者:kero_mio
種類:回答
どんな人:経験者
自信:参考意見
回答日時:
07/09/02 19:27
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

ANo.2 すいません、間違いがあったので、訂正します。

SELECT sum(convert(dec(15),size)) * 8 / 1024
FROM [該当DB名].[dbo].sysfiles

よろしくお願いします。
回答者:kero_mio
種類:回答
どんな人:経験者
自信:参考意見
回答日時:
07/09/02 14:04
この回答へのお礼ご回答ありがとうございます。

クエリからやってみましたが、データベースの容量は取得できているようなのですが、
今回知りたい、テーブル一つ一つの容量についてはこのコマンドからは取得できませんでした。

回答

ANo.1 コマンドというよりは、容量を取得できるビューがあります。

SELECT sum(convert(dec(15),size)) * 8 / 1024
FROM [pubs].[dbo].sysfiles

これで、なんとかできませんか?
このSQLをストアドか何かにして、DOSコマンドからストアド
呼んであげれば、簡単に容量を取得することができます。

ご参考になれば幸いです。
回答者:kero_mio
種類:回答
どんな人:経験者
自信:参考意見
回答日時:
07/09/02 14:03
この回答へのお礼この回答にお礼をつける(質問者のみ)