原文:第三章——使用系统函数、存储过程和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来实现。根据返回的结果可以预测是否有必要马上执行日志备份操作(完整备份不截断日志,也就不会释放日志空间)。

扩展信息:

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

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

  1. Linux/Unix系统编程手册 第三章:系统编程概念

    本章介绍系统编程的基础概念和一些后续章节用到的函数及头文件,并说明了可移植性问题. 系统调用是受控的内核入口,通过系统调用,进程可以请求内核以自己的名义去执行某些动作,比如创建子进程,执行I/O操作, ...

  2. 《python语言程序设计》_第三章(数字函数、字符串和对象)

    3.2_常见的Python函数 (1) abs()函数 求绝对值 (2) max(x1,x2,x3,....)求最大值 (3) min(x1,x2,x3,....)求最小值 (4) pow 返回a的b ...

  3. PHP:第三章——PHP中函数的实参多余形参的处理方法

    <?phpheader("Content-Type:text/html;charset=utf-8");//传参的函数/*function F($a){    echo $a ...

  4. Python开发【第三章】:函数介绍

    一. 函数介绍 1.函数是什么? 在学习函数之前,一直遵循面向过程编程,即根据业务逻辑从上到下实现功能,其往往用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,也就是将之前实现的代码块复 ...

  5. jQuery_第三章_工厂函数

  6. 第三章 Js变量的作用域和匿名函数

    3.1 先看下面的事例: ①var temp=0; ②temp=0; 当js解析器检测到①这种情况的时候,解析器会为这个变量开辟一个内存空间,如果前面已经存在这个变量,就会把这个变量覆盖掉. 当解析器 ...

  7. 正则表达式引擎的构建——基于编译原理DFA(龙书第三章)——3 计算4个函数

    整个引擎代码在github上,地址为:https://github.com/sun2043430/RegularExpression_Engine.git nullable, firstpos, la ...

  8. 简学Python第三章__函数式编程、递归、内置函数

    #cnblogs_post_body h2 { background: linear-gradient(to bottom, #18c0ff 0%,#0c7eff 100%); color: #fff ...

  9. javascript进阶课程--第三章--匿名函数和闭包

    javascript进阶课程--第三章--匿名函数和闭包 一.总结 二.学习要点 掌握匿名函数和闭包的应用 三.匿名函数和闭包 匿名函数 没有函数名字的函数 单独的匿名函数是无法运行和调用的 可以把匿 ...

随机推荐

  1. Instruments的使用 逻辑查错,内存泄漏分析等工具集

    原创文章,转载请注明 XCode 开发后期,要对代码进行改进和优化,查内存泄漏是其中一项重要工作,今天下午偷了点时间,把前段时间的代码稍微整理了一下,顺带用了下这个工具,还真发现了些问题.这里记录一下 ...

  2. Hibernate 配置详解(11)

    hibernate.session_factory_name_is_jndi 配置hibernate.cfg.xml中SessionFactory的name属性是否作为JNDI名称绑定.默认是true ...

  3. android细节之禁用activity的系统的默认切换效果

    网上有非常多方法来禁用系统的默认效果,这里贴上来我觉得最简单的方法. overridePendingTransition(Animation.INFINITE, Animation.INFINITE) ...

  4. Linux 编程学习笔记----ANSI C 文件I/O管理

    转载请注明出处:http://blog.csdn.net/suool/article/details/38129201 问题引入 文件的种类 依据数据存储的方式不同,能够将文件分为文本文件和二进制文件 ...

  5. Windows 8 应用开发 - 应用栏

    原文:Windows 8 应用开发 - 应用栏      通过应用栏(AppBar)可以在需要时向用户显示各种应用命令.应用栏提供与用户当前页面或当前选定的内容相关的各种命令.默认情况下,应用栏处于隐 ...

  6. 重新想象 Windows 8 Store Apps (27) - 选取器: 联系人选取窗口, 自定义联系人选取窗口

    原文:重新想象 Windows 8 Store Apps (27) - 选取器: 联系人选取窗口, 自定义联系人选取窗口 [源码下载] 重新想象 Windows 8 Store Apps (27) - ...

  7. freemarker里的分页--ftl文件的传值

    在上一篇<freemarker里的分页--ftl文件>中我们讨论了分页的逻辑,在这一篇文章中,我们開始看一下怎样进行ftl的传值 或许你在上一篇文章中已经发现了端倪.是的,不错,我们须要一 ...

  8. android学习经常使用的数据文件夹

    android工程实践 1.仿360一键清理实现(一) "一键清理"是一个桌面图标,点击图标后,显示一个视图.进行清理动画.之后显示清理了几个进程,释放了多少M内存.点击" ...

  9. Cocos2d-x 3.1.1 学习日志14--CocosStudio学习必看

    听说Cocos Studio非常久了,主要是由于骨骼动画.眼下看来Cocos2d-x播放动画的方式仅仅有2种: 第一种:是播放序列帧动画,即将动画的每一帧都载入进缓存里,须要播放时再使用Animati ...

  10. AsyncActivity异步加载网页

    import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.IOException; imp ...