web-dev-qa-db-ja.com

Express Editionのサイズ制限に達しているかどうかを確認するにはどうすればよいですか?

私は混乱しています。 AFAIK SQL Server 2005 Expressには、4GBdatabasedataサイズの制限があります。ただし、sp_spaceusedの結果は次のとおりです。

what is the actual size of the database

  1. DBがサイズ制限に達しているかどうかを確認するにはどうすればよいですか?
  2. 未割り当て領域は、上限に達するまでspace leftですか?
  3. 残りのスペースはどれくらいありますか?
  4. index_sizeは制限に含まれますか?
10
g00fy

これが私が here から恥知らずにリッピングした良いスクリプトです:

use [Insert DB Name]

select
a.FILEID,
[FILE_SIZE_MB] = 
convert(decimal(12,2),round(a.size/128.000,2)),
[SPACE_USED_MB] =
convert(decimal(12,2),round(fileproperty(a.name, 'SpaceUsed')/128.000,2)),
[FREE_SPACE_MB] =
convert(decimal(12,2),round((a.size-fileproperty(a.name, 'SpaceUsed'))/128.000,2)) ,
NAME = left(a.NAME,15),
FILENAME = left(a.FILENAME,30)
from
dbo.sysfiles a

これは、各DBファイルの空き領域(複数のファイルがあり、誰かがそれぞれにいくつかのオブジェクトを配置するように設定した可能性があります)と空きサイズを提供するので、これは良いことです。

たとえば、3GBの空き容量がある4GBのデータファイルがあるとします。たぶん、1 MDF大量のデータはありませんが、大量のデータを含むNDFがあります。このクエリは、各ファイルの空きサイズとそのファイルが割り当てられているDBを通知します。追加することを忘れないでください。各DBの「SPACE_USED_MB」をすべて増やして、合計サイズを取得します。

幸運を!

編集:サポートされていないバグのあるコマンドを削除しました。このクエリのためにここに投稿することで回避できると思いました。 :(

6
Ali Razeghi

データベースのサイズはファイルのサイズです。データファイルの実際のサイズを確認します(トランザクションログはカウントされません)。はい、インデックスはカウントされます。スペースが不足している場合は、SQL 2012 Expressへのアップグレードを検討してください。これにより、サイズ制限が10ギガに増加します。

5
mrdenny

Sp_spaceusedが、データファイル/インデックスを含む最初の結果セットで約25 GBのdatabase_sizeを示している場合、andトランザクションログ。 SQL Server Expressの制限にカウントされるのは実際のデータとインデックスのみなので、2番目の結果セットのように約3.3 GBのデータがあり、残りの22 GBがトランザクションログになります。 "sp_helpdb"を実行すると、データの使用状況とトランザクションログの使用状況が2つの別々の行に報告されるため、実際の状況が表示されます。

1
Ubercoder