我怎样才能find一个SQL事务日志使用的空间?

SQL Server sp_spaceused存储过程对于查找数据库大小,未分配的空间等非常有用。但是(据我所知),它不会报告事务日志的信息(并查看SQL Server Management中的数据库属性Studio也不提供事务日志的信息)。

虽然我可以通过查看.ldf文件轻松find事务日志所使用的物理空间,但我怎样才能找出有多less日志文件被使用以及有多less未使用?

find答案后,我提交了问题:)

看起来像dbcc sqlperf(logspace)和dbcc loginfo是我的朋友。

http://www.mssqltips.com/tip.asp?tip=1225

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中执行以下命令:

  • 右键点击数据库
  • 任务
  • 收缩

并select文件types=日志,您不仅会看到文件大小和可用空间的百分比。

对于更多的GUI方法,SQLpipe理工作室可以为数据库创build磁盘空间(除其他外)(右键单击对象资源pipe理器中的数据库节点,select报告)。

该报告还将显示最近文件大小的信息。

另一种方法 – 启动perfmon并检查下列计数器:

  • SQLServer:数据库日志文件大小(KB)
  • SQLServer:使用的数据库日志文件大小(KB)
  • SQLServer:使用百分比日志

这些值实时更新。