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

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

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

前言:

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

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

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

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

DBCC SQLPERF(‘logspace’)命令返回三个列:DatabaseName、LogSize(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来实现。根据返回的结果可以预测是否有必要马上执行日志备份操作(完整备份不截断日志,也就不会释放日志空间)。

扩展信息:

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

时间: 2024-08-03 18:44:04

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

『Python』Numpy学习指南第三章__常用函数

感觉心情渐渐变好了,加油! np.eye(2)np.savetxt('eye.txt',i2)c,v = np.loadtxt('data.csv', delimiter=',', usecols=(6,7), unpack=True) 1 # __*__coding=utf-8__*__ 2 3 import numpy as np 4 5 # 单位矩阵生成 6 i2 = np.eye(2) 7 print(i2) 8 9 # 保存为txt 10 np.savetxt('eye.txt',i2

第三章:系统总线-1.总线的基本概念

为什么要用总线: 总线上信息的传送: 总线结构的计算机举例: 原文地址:https://www.cnblogs.com/chenming-1998/p/11703420.html

第三章:系统总线-5.总线控制

原因:数据传输是要依赖物理层设备,物理层设备是依靠低电压和高电压来区分1,0,所以,同一个时间只能有一份电压输出 总线判优控制: 总线通讯控制: 原文地址:https://www.cnblogs.com/chenming-1998/p/11703454.html

第三章:系统总线-4.总线结构

单总线结构: 多总线结构: 举例: 原文地址:https://www.cnblogs.com/chenming-1998/p/11703437.html

第三章:系统总线-3.总线特性及性能指标

物理总线的实现: 总线特性: 总线的性能指标: 总线的标准: 原文地址:https://www.cnblogs.com/chenming-1998/p/11703425.html

Derby-10.11学习笔记(三)Derby系统表及存储过程

鲁春利的工作笔记,谁说程序员不能有文艺范? SQL标准里面是有schema的概念的,只是不同的数据库在具体实现的时候出现了差别.在Derby.SQLServer是支持schema的,而Oracle中schema应该对应其实例(orcl),而MySQL中schema应该对应的是其database.通过create schema lucl;在Derby中创建一个schema,通过DBeaver工具查看: Derby的系统表位于SYS schema中,但SYS却不是系统默认的schema,因此查询表时

Head First Python 第二章 函数模块&第三章 文件与异常&第四章 持久存储&第五章 处理数据

第三章 1.共享模块 模块和发布工具箱全世界共享模块 编写函数,以.py为文件后缀名,第三方库都在PyPI *注释代码:三引号(单双都可以) 发布过程P40 使用发布工具,函数模块变成了一个“发布”,可以使用import导入其他程序 2.如果函数模块功能不满意 添加参数以供api选择比添加函数工作量小! 首先考虑BIF内置函数 ----------------------------------------------------------- 第四章 1.文件 open()语句,readlin

Python编程快速上手-让繁琐工作自动化 第三章 函数习题及其答案

第三章 函数习题及其答案 1.为什么在程序中加入函数会有好处? 答:函数减少了重复的代码.这让程序更短,更容易阅读,更容易修改. 2.函数中的代码何时执行: 在函数被定义时,还是在函数被调用时? 答:函数中的代码在函数被调用时执行,而不是在函数定义时. 3.什么语句创建一个函数? 答:def语句定义了(创建了)一个函数. 4.一个函数和一次函数调用有什么区别? 答:函数包含def语句和在def子句中的代码.函数调用让程序执行转到函数内,函数调用求值为该函数的返回值. 5.Python程序中有多少

第三章、三元运算、文件处理、函数

第三章.三元运算.文件处理.函数 三元运算 三元运算又称三目运算,是对简单的条件语句的简写,如: 简单条件语句: if 条件成立: val = 1 else: val = 2 # 可以写成如下: val = 1 if 条件成立 else 2 文件处理 读,写,修改 读 f = open(file='d:/*.txt', mode='r', encoding='utf-8') date = f.read() f.close() r是只读模式,rb是以二进制读文件 第三方模块 chardet检测二进