性能优化与故障排除百日谈(3)-监控-使用DBCC命令监控日志空间的使用情况
性能优化与故障排除百日谈(3)-监控-使用DBCC命令监控日志空间的使用情况
其实说到日志,那就得有很多的话题了,可以这样么说,对已日志的合理的规划和深入的研究,对性能起着至关重要的作用,甚至可以说是“成也日志,败也日志”。也许有朋友说这话有点言过其实了,但是事实却是如此,只是我们平时没有太注意这些,因为日志太司空见惯了,但是对已这么一个常见的东西,我们到底对其内部机制与原理掌握多少,对已日志引发的存储,管理,性能问题等如何解决,确实一门大的学问。
备注:大家可以去看看我们录制的“日志故障排除与性能优化”视频。
那么,我们今天主要讲述如何对日志使用进行一些监控。
我们知道,每一个数据库都有一个日志文件与之对应(当然,我们可以把日志文件拆分为几个日志文件,但是这么做对性能没有帮助,仅仅只是在管理和空间使用上面有一些作用)。每一条日志记录记录着DML的活动,并且日志文件还可以用来进行数据恢复。
对于日志,有两个文件比较严重:
1.日志的增长超过了预期的速度,例如,我们本以为日志增长是每天100MB,但是实际却是每天增长200MB。
2.出现了日志文件已满的错误(9002)
当然,在应急的时候,可以砸钱暂时缓解一下,但是有些情况,即使砸钱也无法解决问题,因为没有找到问题的症结点。
下面我们就和大家说说如何使用DBCC命令来诊断一些问题。当然,手段有很多,本文列举的不是全部,千万不要以偏慨全。
在SQL Server使用很多的DBCC命令发布我们进行数据库的管理,其中DBCC SQLPERF就是其中一个,使用这个命令,我们可以监控日志文件的大小。
在下面的例子中,我们将会获取所有数据库的日志空间的使用情况。除了使用DBCC SQLPERF监控日志使用情况之外,还可以使用这个命令来重置等待与阀锁的信息。
如果DBCC SQLPERF接受LOGSPACE,那么就返回日志的使用情况,如果要重置等待信息,那么可以传入其他的几个参数。
使用DBCC SQLPERF命令,返回的几个非常有用数据列:Database Name, Log Size(MB),Log Space Used(%)。
下面进入实战。
首先,我们还是打开SQL Sever 管理界面。
然后,我们输入下面的命令:DBCC SQLPERF(LOGSPACE)
结果如下:
其实,这可能还无法解决问题,但是我们还可以使用更多的东西查看,如下:
因为本篇的重点只是讲述如何使用命令与函数,所以更多的我们暂时不讲,大家慢慢的积累,一点点的学习。