2009-09-11 7 views
0

Webアプリケーション用にSQL Serverを使用しています。どのように私はあなたがこれを使用すると、特定のデータベースのために使用されているどのくらいのメモリあなたを与えるだろうデータベースサーバーのディスクメモリがいっぱいです

exec sp_spaceused 

あなたのメモリ使用量検索したい場合は、データベース・サーバのメモリディスクが既に

+0

ディスクがいっぱいであるということで、何をする予定ですか? –

+0

実際にまたは物理的にハードディスクをいっぱいにしなくても、ビジュアルスタジオでフルハードディスクを使用するというアイデアをシミュレートする方法はありますか? :)私はここで単体テストをしています。そして、そのシナリオを私のテストに含めたいと思います。 – cedric

答えて

2

これをシミュレートするには、データベース上の自動拡張機能(ファイルタブのデータベースプロパティのチェックボックス)を無効にし、データベースをいっぱいにします。エラーは同じになります。

ALTER DATABASE YourDatabase 
MODIFY FILE (name='YourFile' MAXSIZE=50MB); 
+0

Thnksがあれば例外がスローされます。しかし、このプロパティの設定を自動化する方法はありますか?コードを使った方がはるかに良いでしょう – cedric

+0

確かに、私の答えにコードを載せます。 maxsize値をファイルの現在のサイズに設定して、ファイルがそれ以上成長しないようにする必要があります。 – mrdenny

+0

ちょうど私が必要な...これはすべてを解決.. Thnx .. :) – cedric

1

いっぱいであるため、挿入クエリが失敗したことを知っているだろう

4

あなたが戻って取得しますエラーコードは、ディスクがいっぱいであることを示します:1105(プライマリファイルグループフル)または9902(フルログファイル)

1

エラーコードを確認し、あなたがしようとしたとき、あなたは戻ってSQL Serverから取得しますデータベースに挿入します。

このエラーが返された場合、何をすべきかを決定できます。 (たとえば、もう一度挿入しようとすると、 サーバ上のメモリを解放してください)また、エラーが発生した場合にロールバックできるように、Insert文をTransaction内に配置してください。

+0

実際には、完全なディスクを持つというシナリオをシミュレートする方法はまだ見つかっていません。私が期待していた方法が見つかったら、例外がありますか? – cedric

1

私は、ディスクがいっぱいになると、SQL Serverがエラーコードを返すと信じていると思います。

テストコードをSQLサーバーと通信していると思うようにすることはできますが、テストするエラーコードで応答するユーザーの偽のオブジェクトと対話します。

あなたに役立つフレームワークがあります。そのうちの1つは、Rhino Mocksからダウンロードできます。http://ayende.com

関連する問題