質問 |
||
| 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 |
|
| |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |