• ベストアンサー

SQL2000サーバーのテーブル容量を確認したい

SQL2000サーバーの各テーブルの容量(~メガバイト等)を確認する方法は、タスクパッドから確認する以外にありますか?出来れば一度にすべてのテーブル容量を、一覧で取得出来るコマンドなどがあれば良いのですが・・・。

質問者が選んだベストアンサー

  • ベストアンサー
  • kero_mio
  • ベストアンサー率90% (94/104)
回答No.4

補足です。早い話が、 「sp_spaceused テーブル名」 でテーブル単位の容量を確認することができますってことです。 前回提示したサンプルは、DB内にあるすべてのテーブルの 容量を1つずつ表示しているというサンプルになります。 ご参考までに。

noname#68596
質問者

お礼

お礼のお返事が大変遅くなってしまいすみません。 こちらの件、お蔭様で解決いたしました。 ありがとうございました。

その他の回答 (3)

  • kero_mio
  • ベストアンサー率90% (94/104)
回答No.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
  • ベストアンサー率90% (94/104)
回答No.2

すいません、間違いがあったので、訂正します。 SELECT sum(convert(dec(15),size)) * 8 / 1024 FROM [該当DB名].[dbo].sysfiles よろしくお願いします。

noname#68596
質問者

お礼

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

  • kero_mio
  • ベストアンサー率90% (94/104)
回答No.1

コマンドというよりは、容量を取得できるビューがあります。 SELECT sum(convert(dec(15),size)) * 8 / 1024 FROM [pubs].[dbo].sysfiles これで、なんとかできませんか? このSQLをストアドか何かにして、DOSコマンドからストアド 呼んであげれば、簡単に容量を取得することができます。 ご参考になれば幸いです。

関連するQ&A