- ベストアンサー
SQL2000サーバーのテーブル容量を確認したい
SQL2000サーバーの各テーブルの容量(~メガバイト等)を確認する方法は、タスクパッドから確認する以外にありますか?出来れば一度にすべてのテーブル容量を、一覧で取得出来るコマンドなどがあれば良いのですが・・・。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
補足です。早い話が、 「sp_spaceused テーブル名」 でテーブル単位の容量を確認することができますってことです。 前回提示したサンプルは、DB内にあるすべてのテーブルの 容量を1つずつ表示しているというサンプルになります。 ご参考までに。
その他の回答 (3)
- kero_mio
- ベストアンサー率90% (94/104)
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)
すいません、間違いがあったので、訂正します。 SELECT sum(convert(dec(15),size)) * 8 / 1024 FROM [該当DB名].[dbo].sysfiles よろしくお願いします。
お礼
ご回答ありがとうございます。 クエリからやってみましたが、データベースの容量は取得できているようなのですが、 今回知りたい、テーブル一つ一つの容量についてはこのコマンドからは取得できませんでした。
- kero_mio
- ベストアンサー率90% (94/104)
コマンドというよりは、容量を取得できるビューがあります。 SELECT sum(convert(dec(15),size)) * 8 / 1024 FROM [pubs].[dbo].sysfiles これで、なんとかできませんか? このSQLをストアドか何かにして、DOSコマンドからストアド 呼んであげれば、簡単に容量を取得することができます。 ご参考になれば幸いです。
お礼
お礼のお返事が大変遅くなってしまいすみません。 こちらの件、お蔭様で解決いたしました。 ありがとうございました。