SQL Server の容量・サイズとは何を指すのか。
よくわからない。
よって、ここに書いてあることもわりと適当。
大体あっているといいなあ。
GUI で見るとき
Management Studio で データベース上で右クリック、
コンテキストメニュー「プロパティ」-「全般」から見るとき。
・サイズ: MDF + LDF ファイルの大きさ。
・使用可能領域:サイズ - (MDF ファイル内で既に使用されている領域 + LDF ファイル内で既に使用されている領域)
コンテキストメニュー「プロパティ」-「ファイル」から見るとき。
・初期サイズ(MB):現在のファイルの大きさ。ファイル単位。上記のサイズ = 初期サイズ(MB)の合計
SQLで確認するとき
SELECT file_id, name, type_desc, physical_name, size FROM sys.database_files ;
・コンテキストメニュー「プロパティ」-「ファイル」から見るとき。 に相当。
SELECT sum(size) from dbo.sysfiles
もしくは
SELECT CONVERT(numeric(18,2), sum(size)*8192/1048576) from dbo.sysfiles
・コンテキストメニュー「プロパティ」-「全般」から見るとき。 サイズ。 に相当。
・このクエリの「size」 は8KBページ単位なので、おおざっぱに計算してやった方が見やすい。
select CONVERT(numeric(18,2),FILEPROPERTY(file_name(fileid),'SpaceUsed')*8192.0/power(1024.0,2)) from dbo.sysfiles where fileid = 1
・データベースのMDF のうち、使用済の領域。
・除算かませているので若干結果が怪しくなる。
EXEC sp_spaceused
・これまで上記で書いてきた情報をまとめてとれる感じ。(ファイルごとのサイズはとれないけど……)
・使用済の領域についてはコッチの方が正確な気がする。(根拠なし)
・結果セットができるストアド ということもあり、軽く見る分には便利だが他の処理には組み込みにくい。
ところで
「SQL」という単語と「クエリ」という単語がごっちゃになっています。
ゴフ(吐血)
分かっているけど使い分けられない。