首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

分享一个查看数据库文件空间使用率的sql,该怎么解决

2012-01-30 
分享一个查看数据库文件空间使用率的sql这几天搞镜像数据库,结果主库的日志无限增大,数据文件才11G,日志文

分享一个查看数据库文件空间使用率的sql
这几天搞镜像数据库,结果主库的日志无限增大,数据文件才11G,日志文件已经增长到300G了,而且无法收缩,必须断开镜像,而技术部那帮懒人又嫌断开镜像麻烦,不想搞,最后只好让他们搞个job,通过每天备份事务日志来截断日志:
BACKUP LOG 数据库名 TO DISK = 'h:\log20111122.bak'

不过这样备份完毕后,日志文件还是300G,不会减小,只是文件使用率从原来的99%下降到45%,再备份一次,下降到1%了,下面就是查看文件使用率的sql:
USE 数据库名
GO
SELECT name, data_space_id 文件组id, size/128 [文件大小(兆)], 
  FILEPROPERTY(name, 'SpaceUsed')/128 [已用空间(兆)],
  size/128 - FILEPROPERTY(name, 'SpaceUsed')/128 [未用空间(兆)],
  FILEPROPERTY(name, 'SpaceUsed')*100.0/size [使用率(%)],
  max_size/128 [最大值(兆)], growth 增长值, is_percent_growth 是否百分比增长, physical_name 物理路径
FROM sys.database_files a 

也可以用下面的sql查看日志文件使用率(注:要管理员才有权限)
DBCC SQLPERF(LOGSPACE)

另外:sys.database_files是Sql2005以上才支持的系统视图,如果是Sql2000,请改用Sysfiles视图

[解决办法]
帮顶,是不是备分后就可以切断日志了。这个空间更是大大的回来了吧。

热点排行