SQL Serverがデータを格納するためにディスクスペースを消費する方法を確認したいと思います。私は最近、約100GBのテーブルをドロップし、ハードディスクは同じままです(ドロップ前のサイズは30GB、ドロップ操作後、サイズは130GBになるはずです)。 Webからのチェックの後、SQL Serverが自動的にそれを処理しないことに気付き、SQL Serverリリースのハードディスクブロックを解放するには、縮小操作が必要です。私が間違っているなら私を訂正してください。SQL Server 2014がディスクスペースを消費してデータを格納する方法
私の質問は30GBのデータを削除した後、SQL Serverは今後の使用のためにこれを元に戻します。これは、SQL ServerがOSからの要求ブロックではなく新しいデータに対してこの予約済みブロックを使用することを意味します。私が間違っているなら私を訂正してください。
ここで私がデータベースから得た情報です。正しく理解されていれば、SQL Serverは約308GBのデータファイルが予約されており、すでに約196GBを使用しています。新しいデータがこのデータファイルに来ると、SQL Serverは予約されたブロックを使用してサイズが308GBに達すると、OSから追加のブロックを要求します。私は正しい?
;with db_file_cte as
(
select
name,
type_desc,
physical_name,
size_mb =
convert(decimal(11, 2), size * 8.0/1024),
space_used_mb =
convert(decimal(11, 2), fileproperty(name, 'spaceused') * 8.0/1024)
from sys.database_files
) select
name,
type_desc,
physical_name,
size_mb,
space_used_mb,
space_used_percent =
case size_mb
when 0 then 0
else convert(decimal(5, 2), space_used_mb/size_mb * 100)
end
from db_file_cte;
これは実際には**プログラミング**とは関係ありませんが(このサイトは*すべてです)、DB管理がありますので、ここで話題にはならず[dba.stackexchange.com] (http://dba.stackexchange.com) - 移動する投票。 –