第三章——使用系统函数、存储过程和DBCC SQLPERF命令来监控SQLServer(3)

简介: 原文: 第三章——使用系统函数、存储过程和DBCC SQLPERF命令来监控SQLServer(3) 本文为这个系列最后一篇。将是如何使用DBCC命令来监控SQLServer日志空间的使用情况。
原文: 第三章——使用系统函数、存储过程和DBCC SQLPERF命令来监控SQLServer(3)

本文为这个系列最后一篇。将是如何使用DBCC命令来监控SQLServer日志空间的使用情况。

 

前言:

 

       每个数据库都必须有事务日志。事务日志记录每个DML操作,并应用于SQLServer的数据库中,如果恢复模式为FULL并经常有DML操作,日志将增长得非常快。几时恢复模式为simple,当数据库处于事务复制或者合并复制时,日志通常会增长。如果日志不是经常备份且日志文件的增长没有受到限制的话,将有可能耗光你所有的硬盘空间然后造成数据库宕机。作为DBA,应该经常监控日志的使用情况以避免问题的发生。

 

       作为DBA,其中一个重要的责任就是监控日志文件的大小,以确保空间不会被耗光导致数据库服务器宕机。

 

         SQLServer提供了不同的DBCC命令供DBA使用,其中DBCC SQLPERF是其中一个用于监控日志大小的常用命令,在本文中,将演示使用这个命令。除了获取日志的信息,还可以用于重置等待和闩锁状态。

 

DBCC SQLPERF用于监控日志使用情况时,只需要传入一个参数LOGSPACE。但是它也接受其他命令。

DBCC SQLPERF(‘logspace’)命令返回三个列:DatabaseNameLogSize(MB)LogSpaceUsed(%)

 

步骤:

 

1、  打开SSMS然后新开一个查询窗口。

 

2、  在查询窗口中输入以下代码:

 

USE tempdb
GO
IF OBJECT_ID('dbo.#tbl_DBLogSpaceUsage') IS NOT NULL 
    BEGIN
        DROP TABLE dbo.#tbl_DBLogSpaceUsage
    END

CREATE TABLE dbo.#tbl_DBLogSpaceUsage
    (
      DatabaseName NVARCHAR(128) ,
      LogSize NVARCHAR(25) ,
      LogSpaceUsed NVARCHAR(25) ,
      [Status] TINYINT
    )

INSERT  INTO dbo.#tbl_DBLogSpaceUsage
        EXEC ( 'DBCC SQLPERF(LOGSPACE)'
            )

--查询全部结果:
SELECT  DatabaseName ,
        LogSize ,
        LogSpaceUsed ,
        [Status]
FROM    dbo.#tbl_DBLogSpaceUsage
GO
--查询特定数据库的结果:
SELECT  DatabaseName ,
        LogSize AS LogSizeInMB ,
        LogSpaceUsed LogspaceUsed_In_Percent ,
        [Status]
FROM    dbo.#tbl_DBLogSpaceUsage
WHERE   Databasename = 'AdventureWorks'
GO


 

分析:

 

       本例中创建了一个临时表,然后调用DBCC SQLPERF来把数据插入表中。由于DBCC命令需要用EXEC来执行,所以使用动态SQL来实现。根据返回的结果可以预测是否有必要马上执行日志备份操作(完整备份不截断日志,也就不会释放日志空间)。 

 

扩展信息:

       可以改进这个语句来获取汇总值,在一段时间之后,表就存放了日志使用信息的历史记录。可以用于分析日志的增长情况。

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
22天前
|
监控 数据库 开发工具
使用Telegraf+Grafana监控Microsoft SQLServer数据库
使用Telegraf+Grafana监控Microsoft SQLServer数据库
33 1
|
4月前
|
存储 SQL 数据库
SQLServer存储过程的执行计划
SQLServer存储过程的执行计划
46 0
|
4月前
|
存储
SQLServer存储过程中事务的创建
SQLServer存储过程中事务的创建
29 0
|
4月前
|
存储
SQLServer分页获取数据的存储过程
SQLServer分页获取数据的存储过程
19 0
|
4月前
|
存储
SQLServer存储过程中的输出参数的使用
SQLServer存储过程中的输出参数的使用
29 0
|
4月前
|
存储 SQL Go
SQLServer存储过程详解
SQLServer存储过程详解
31 0
|
7月前
|
存储 SQL 安全
数据库SQL Server 9-10 章(存储过程与触发器)
数据库SQL Server 9-10 章(存储过程与触发器)
137 0
|
7月前
|
存储 SQL 数据库
SQL Server——为什么要使用存储过程?不使用是什么样的?
提高数据库执行速度,可能第一次见到这句话的小伙伴们感觉到非常的匪夷所思叭!怎么就提高了它的执行速度捏,从哪方面可以表现出来呢?既然这里要说到的是为什么要使用存储过程,也就是说它的优点是什么。那我们肯定就要对使用和不使用存储过程两方面来进行对比才能看出它的优点对吧。
|
7月前
|
存储
SqlServer存储过程应用二:分页查询数据并动态拼接where条件 (下)
SqlServer存储过程应用二:分页查询数据并动态拼接where条件 (下)
|
7月前
|
存储 SQL 数据库连接
SqlServer存储过程应用二:分页查询数据并动态拼接where条件 (上)
SqlServer存储过程应用二:分页查询数据并动态拼接where条件