Sqlserver 监控使用磁盘空间情况

最近遇到一个小问题:为了保存以往的一些数据,间了大量临时表,导致SQLserver 数据增长过快,不得不想个办法监控磁盘空间使用情况。

网上一般有几种办法:
一是使用 dm_os_volume_stats函数,缺点是 无法获取非数据库所在的磁盘空间使用情况。

二是使用 Exec master.dbo.xp_fixeddrives ,缺点是只有磁盘空间使用情况,没有总容量。

三是使用xp_fixeddrives+xp_cmdshell,虽然有现成的语句,但过于复杂,而且打开cmdshell是存在一定的风险。

所以,可以简化操作如下:
1、使用dm_os_volume_stats函数,获得所有磁盘信息,若某个磁盘不在其中,则先增加一个临时数据库

例如,如果数据只存放在c\d盘,E盘没有数据库但用于备份,也需要监控,可以临时建立数据库(其他磁盘可参考):

USE [master]
GO/****** Object:  Database [TEMP_BT]    Script Date: 2023/9/14 8:59:38 ******/
DROP DATABASE IF EXISTS [TEMP_BT]
GO/****** Object:  Database [TEMP_BT]    Script Date: 2023/9/14 8:59:38 ******/
CREATE DATABASE [TEMP_BT]CONTAINMENT = NONEON  PRIMARY 
( NAME = N'TEMP_BT', FILENAME = N'E:\DATA\TEMP_BT.mdf' , SIZE = 1024KB , MAXSIZE = UNLIMITED, FILEGROWTH = 16KB )LOG ON 
( NAME = N'TEMP_BT_log', FILENAME = N'E:\DATA\TEMP_BT_log.ldf' , SIZE = 1024KB , MAXSIZE = 2GB , FILEGROWTH = 16KB )
GO

2、用dm_os_volume_stats函数获取磁盘信息,这些语句已经有现成的:

(假设数据库用 Data)

drop  table  if  exists   [Data].[dbo].[T_diskspace]
goWITH T1 AS (
SELECT DISTINCT
REPLACE(vs.volume_mount_point,':\','') AS Drive_Name ,
CAST(vs.total_bytes / 1024.0 / 1024 / 1024 AS NUMERIC(18,2)) AS Total_Space_GB ,
CAST(vs.available_bytes / 1024.0 / 1024 / 1024  AS NUMERIC(18,2)) AS Free_Space_GB
FROM    sys.master_files AS f
outer APPLY sys.dm_os_volume_stats(f.database_id, f.file_id) AS vs
)
SELECT
GETDATE() as  sdate,
Drive_Name,
Total_Space_GB,
Total_Space_GB-Free_Space_GB AS Used_Space_GB,
Free_Space_GB,
CAST(Free_Space_GB*100/Total_Space_GB AS NUMERIC(18,2)) AS Free_Space_Percent
into  [Data].[dbo].[T_diskspace]
FROM T1gouse [Data]
goselect *  from   [Data].[dbo].[T_diskspace]go

完成后,如下图可见:

在这里插入图片描述
当然同时可删除 临时数据库:

use [master]
goDROP DATABASE IF EXISTS [TEMP_BT]
GO

以上数据获取后运行一次保存即可,以后无需运行

3、用 Exec master.dbo.xp_fixeddrives 监控磁盘空间情况即可。

use [Data]
goselect *  from   [Data].[dbo].[T_diskspace]godrop table  if exists [dbo].[Temp_diskspace]
goCREATE TABLE [dbo].[Temp_diskspace]([Drive_name] [nvarchar](500)  NULL,[Free_Space] [numeric](20,2)  NULL,
) ON [PRIMARY]
GOinsert into [Data].[dbo].[Temp_diskspace](Drive_Name,Free_Space)
Exec  master.dbo.xp_fixeddrives goupdate [Data].[dbo].[T_diskspace] set sdate=GETDATE(),Free_Space_GB=cast(b.Free_Space/1024 as numeric(20,2))
from [Data].[dbo].[T_diskspace] a,[Data].[dbo].[Temp_diskspace] b
where a.Drive_Name=b.Drive_Namegoupdate [Data].[dbo].[T_diskspace] set Used_Space_GB=Total_Space_GB-Free_Space_GB,
Free_Space_Percent=CAST(Free_Space_GB*100/Total_Space_GB AS NUMERIC(18,2)) drop  table if exists [dbo].[Temp_diskspace]
goselect *  from   [Data].[dbo].[T_diskspace]go

这段代码每日运行即可

以上需要 SQLServer 2008 以上版本

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/132826.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis缓存更新策略、详解并发条件下数据库与缓存的一致性问题以及消息队列解决方案

0、前言 我们知道,缓存由于在内存中,数据处理速度比直接操作数据库要快很多,因此常常将数据先读到缓存中,再进行查询、更新等操作。 但与之而来的问题就是,内存中的数据不仅没有持久化,而且需要保证…

Dajngo02_第一个Django案例

Dajngo02_第一个Django案例 经过之前学习,我们已经可以创建Django环境 现在开始尝试快速使用Django开发一个案例 案例:利用Django实现一个查看当前时间的web页面。 在django中要提供数据展示给用户,一般情况下我们需要完成3个步骤: 在urls.…

云原生之使用Docker部署Teedy轻量级文档管理系统

云原生之使用Docker部署Teedy轻量级文档管理系统 一、Teedy介绍1.1 Teedy简介1.2 Teedy特点 二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本 四、下载Teedy镜像五、部署Teedy轻量级文…

TDE和数据脱敏功能介绍

TDE(Transparent Data Encryption)和数据脱敏(Data Masking)是两种常见的数据安全技术,它们在保护敏感数据和增强数据隐私方面起着至关重要的作用。接下来,将对这两种技术进行详细的介绍。 TDE,全称透明数据加密(Transparent Data Encryption…

Android 开发小贴士

Android 开发小贴士 应用编译时报错:Unable to merge dex 可能原因: 包引用重复 、方法数超限或者几个库之间有重复代码块(特别是在整理module时容易犯)。 解决办法: app的build.gradle 中 // 1. 添加配置 defaultConfig {......multiDexEn…

Kafka消费者组重平衡(二)

文章目录 概要重平衡通知机制消费组组状态消费端重平衡流程Broker端重平衡流程 概要 上一篇Kafka消费者组重平衡主要介绍了重平衡相关的概念,本篇主要梳理重平衡发生的流程。 为了更好地观察,数据准备如下: kafka版本:kafka_2.1…

lvs负载均衡、LVS集群部署

四:LVS集群部署 lvs给nginx做负载均衡项目 218lvs(DR 负载均衡器) yum -y install ipvsadm(安装这个工具来管理lvs) 设置VIP192.168.142.120 创建ipvsadm的文件用来存放lvs的规则 定义策略 ipvsadm -C //清空现有…

Java经典问题解答(9题)

文章目录 1、通关jwt靶场的其中任意两关(该题与Java无关)启动环境第4关第5关第7关 2、java是如何跨平台通信的3、java为什么需要类名和文件名一致4、main函数的作用是什么5、.class文件和.java是什么关系6、java在编写函数的时候void是什么意思7、java声…

慢查询SQL如何优化

一.什么是慢SQL? 慢SQL指的是Mysql中执行比较慢的SQL,排查慢SQL最常用的方法是通过慢查询日志来查找慢SQL。Mysql的慢查询日志是Mysql提供的一种日志记录,它用来记录Mysql中响应时间超过long_query_time值的sql,long_query_time的默认时间为10s. 二.查看慢SQL是否…

模拟信号电压或电流信号转变频器频率传感器信号隔离变送器0-5V/0-10V/0-20mA/4-20mA转0-5KHz/0-10KHz/1-5KHz

主要特性: 精度等级:0.1 级、0.2 级。产品出厂前已检验校正,用户可以直接使用输 入 :0-5V/0-10V/1-5V,0-10mA/0-20mA/4-20mA 等输出信号:0-5KHz/0-10KHz/1-5KHz 等标准信号辅助电源:5V、9V、12V、15V 或 24V 直流单电…

使用branch and bound分支定界算法选择UTXO

BnB算法原理 分支定界算法始终围绕着一颗搜索树进行的,我们将原问题看作搜索树的根节点,从这里出发,分支的含义就是将大的问题分割成小的问题。 大问题可以看成是搜索树的父节点,那么从大问题分割出来的小问题就是父节点的子节点…

怎么裁剪图片?总结了下面几个方法

怎么裁剪图片?在日常的生活中,图片已经成为了我们不可或缺的一部分。或许你正在整理自己的相册时,或者我们需要向互联网上发布一些图片的时候,总之我们随时都可能会遇到一张需要进行裁剪的图片。比如说,一些图片上存在…

每日一博 - 反向代理、API 网关、负载均衡

文章目录 概述图解 概述 反向代理、API网关和负载均衡是在网络和服务器架构中用于不同目的的重要组件,它们有不同的功能和应用场景。以下是它们之间的区别和联系: 反向代理(Reverse Proxy): 功能:反向代理…

Xilinx FPGA未使用管脚上下拉状态配置(ISE和Vivado环境)

文章目录 ISE开发环境Vivado开发环境方式1:XDC文件约束方式2:生成选项配置 ISE开发环境 ISE开发环境,可在如下Bit流文件生成选项中配置。 右键点击Generate Programming File,选择Process Properties, 在弹出的窗口选…

分类预测 | MATLAB实现基于SVM-Adaboost支持向量机结合AdaBoost多输入分类预测

分类预测 | MATLAB实现基于SVM-Adaboost支持向量机结合AdaBoost多输入分类预测 目录 分类预测 | MATLAB实现基于SVM-Adaboost支持向量机结合AdaBoost多输入分类预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.MATLAB实现基于SVM-Adaboost支持向量机结合Ada…

软件开发代码审查(review)工具

软件开发代码审查(Code Review)是一个重要的质量保证实践,旨在发现和修复潜在的问题、缺陷和安全漏洞。为了进行有效的代码审查,开发团队通常使用各种代码审查工具。以下是一些常见的软件开发代码审查工具及其特点,希望…

数据结构之洗牌算法

洗牌算法 1.买一副牌(生成一副牌)2.洗牌3.揭牌完整代码 1.买一副牌(生成一副牌) 2.洗牌 3.揭牌 完整代码 card中的代码: cardDemo中的代码 测试类代码

【日积月累】SpringBoot启动流程

目录 SpringBoot启动流程 1.前言2.构造一个SpringApplication的实例,完成初始化的工作SpringApplication实例构造完之后调用run方法,启动SpringApplication3.SpringBoot启动代码SpringBootConfigurationComponentScanEnableAutoConfiguration 总结参考…

神经网络-pytorch版本

pytorch神经网络基础 torch简介 torch和numpy import torch import numpy as np np_datanp.arange(6).reshape((2,3)) torch_datatorch.from_numpy(np_data) tensor2arraytorch_data.numpy() print(np_data,"\n",torch_data,"\n",tensor2array)torch的数…

竞赛 基于机器视觉的火车票识别系统

文章目录 0 前言1 课题意义课题难点: 2 实现方法2.1 图像预处理2.2 字符分割2.3 字符识别部分实现代码 3 实现效果最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 基于机器视觉的火车票识别系统 该项目较为新颖,适合作为竞赛…