SQL Serverのsp_spaceusedストアドプロシージャは、データベースサイズや未割り当て領域などを見つけるのに役立ちます。ただし、(私が知る限り)トランザクションログの情報は報告しません(SQL Server管理内のデータベースプロパティを確認しません)。 Studioはトランザクションログの情報も提供しません)。
.ldfファイルを見れば、トランザクションログが使用している物理領域を簡単に見つけることができますが、使用されているログファイルの量と未使用の量を確認するにはどうすればよいですか。
私が質問を提出した直後に答えが見つかりました:)
Dbcc sqlperf(logspace)とdbcc loginfoが私の友人のようです。
create table #dbsize
(Dbname varchar(30),dbstatus varchar(20),Recovery_Model varchar(10) default ('NA'), file_Size_MB decimal(20,2)default (0),Space_Used_MB decimal(20,2)default (0),Free_Space_MB decimal(20,2) default (0))
go
insert into #dbsize(Dbname,dbstatus,Recovery_Model,file_Size_MB,Space_Used_MB,Free_Space_MB)
exec sp_msforeachdb
'use [?];
select DB_NAME() AS DbName,
CONVERT(varchar(20),DatabasePropertyEx(''?'',''Status'')) ,
CONVERT(varchar(20),DatabasePropertyEx(''?'',''Recovery'')),
sum(size)/128.0 AS File_Size_MB,
sum(CAST(FILEPROPERTY(name, ''SpaceUsed'') AS INT))/128.0 as Space_Used_MB,
SUM( size)/128.0 - sum(CAST(FILEPROPERTY(name,''SpaceUsed'') AS INT))/128.0 AS Free_Space_MB
from sys.database_files where type=0 group by type'
go
select * from #dbsize
別の方法-MS SQL Management Studioで次のコマンドを実行します。
[ファイルタイプ] = [ログ]を選択すると、ファイルサイズと使用可能な空き領域の割合だけが表示されます。
よりGUIアプローチの場合、SQL Management Studioは、データベースのディスクスペース(とりわけ)レポートを作成できます(オブジェクトエクスプローラーでデータベースノードを右クリックし、レポートを選択します)。
このレポートには、最近のファイルのサイズ変更に関する情報も表示されます。
別の方法-perfmonを起動して、次のカウンターを確認します。
これらの値はリアルタイムで更新されます。