Server sp_spaceused存储过程对于查找数据库大小、未分配空间等非常有用。但是(据我所知),它没有报告事务日志的信息(查看中的数据库属性也没有为事务日志提供这些信息)。
虽然我可以通过查看.ldf文件轻松地找到事务日志所使用的物理空间,但如何才能找到使用了多少日志文件以及有多少未使用呢?
发布于 2009-06-24 03:09:18
发布于 2012-11-21 04:18:24
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 发布于 2009-06-24 08:06:46
另一种方法-在中执行以下命令:
并选择File = Log,您不仅会看到文件大小和可用可用空间的%。
https://serverfault.com/questions/30735
复制相似问题