布団が俺を呼んでいる

丘山大一のぶろぐ

SQL Server の 容量を取得する

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」という単語と「クエリ」という単語がごっちゃになっています。
ゴフ(吐血
分かっているけど使い分けられない。




SQL Server 2016の教科書 開発編

新品価格
¥3,888から
(2016/9/26 21:15時点)

コメントを書く