mssql

推荐列表 站点导航

当前位置:首页 > 数据库 > mssql >

MSSQL 监控数据/日志文件增长实现方法

来源:网络整理  作者:网络  发布时间:2020-12-09 08:18
今天就想实现这么一个功能,每天(频率可以调整)去收集一下数据文件的信息,放到一个表里面,这样方便我们分...
    , @level1name = N'DiskCapacityHistory'
    , @value = '日期编码'
 
    , @level2name = N'IsReadOnly';
GO

    , @level1type = N'TABLE'

    , @level1name = N'DiskCapacityHistory'
    , @value = '数据库标识'


   

EXEC sys.sp_addextendedproperty @name = N'MS_Description'
    , @level0type = N'SCHEMA'
同比:  (指标当前值 - 指标值(去年月同一天))/ 指标值(去年月同一天) 。
    , @level2name = N'FileTypeDesc';
    , @level1name = N'DiskCapacityHistory'

GO

GO
    , @level1type = N'TABLE'
同比: (指标当前值 - 指标值 (上个月))/指标值(上个月)
    CONSTRAINT PK_DiskCapacityHistory PRIMARY KEY(Date_CD, DataBaseID, FileID)    
    , @level2type = N'COLUMN'
    [IsReadOnly]         INT                     ,
    [PhysicalName]       NVARCHAR(260)          ,
    , @level0name = N'dbo'
环比:  (指标当前值 - 指标值(上个月同一天))/ 指标值(上个月同一天) 。
(
    , @level1name = N'DiskCapacityHistory'
    , @value = '文件增长环比(%)'
EXEC sys.sp_addextendedproperty @name = N'MS_Description'

    , @level0type = N'SCHEMA'
    [Size]               FLOAT                   ,
    , @level0name = N'dbo'
    , @value = '文件标识'
);
EXEC sys.sp_addextendedproperty @name = N'MS_Description'
其实如果关注每天的数据文件变化情况,这个代码里面的环比、同比其实意义不大,其实我们可以这样定义环比、同比:

    , @level0name = N'dbo'
    , @level1type = N'TABLE'

EXEC sys.sp_addextendedproperty @name = N'MS_Description'
EXEC sys.sp_addextendedproperty @name = N'MS_Description'
    , @level0type = N'SCHEMA'
    , @level2type = N'COLUMN'
    [DataBaseID]         INT                     ,
    , @level0type = N'SCHEMA'
    , @level0name = N'dbo'

    , @level1name = N'DiskCapacityHistory'
EXEC sys.sp_addextendedproperty @name = N'MS_Description'
    , @level2name = N'PhysicalName';
    , @level1name = N'DiskCapacityHistory'
    , @level1type = N'TABLE'
    , @level1type = N'TABLE'
    , @level0name = N'dbo'


    , @value = '文件增长类型'
    [GrowthType]         NVARCHAR(8)             ,
EXEC sys.sp_addextendedproperty @name = N'MS_Description'
    , @level0name = N'dbo'
    , @level0type = N'SCHEMA'
    , @level2type = N'COLUMN'
    [LogicalName]        VARCHAR(32)             ,
EXEC sys.sp_addextendedproperty @name = N'MS_Description'
    , @level2type = N'COLUMN'

    , @level1type = N'TABLE'
    , @level0type = N'SCHEMA'
    , @level1name = N'DiskCapacityHistory'
    , @level0type = N'SCHEMA'
    , @level0type = N'SCHEMA'

复制代码 代码如下:

    , @level0name = N'dbo'
    , @level0name = N'dbo'
    , @level0type = N'SCHEMA'
    [DataBaseName]       sysname                 ,


    , @level0type = N'SCHEMA'
EXEC sys.sp_addextendedproperty @name = N'MS_Description'
    , @value = '文件类型描述'
    , @level2name = N'LogicalName';
    , @value = '数据库名称'


    [Growth_MOM_RAT]     FLOAT                   ,
    , @level1type = N'TABLE'
    , @level1name = N'DiskCapacityHistory'
EXEC sys.sp_addextendedproperty @name = N'MS_Description'
    , @level2name = N'Growth_MOM_RAT';
    , @level2type = N'COLUMN'
    , @level2name = N'MaxSize';
    , @level2type = N'COLUMN'

 
    , @value = '是否按百分比增长'
    , @level2type = N'COLUMN'
    , @level0name = N'dbo'
    , @value = '文件增长同比(%)'
    , @level2type = N'COLUMN'

    , @level0name = N'dbo'

    , @level0name = N'dbo'
环比: (指标当前值 - 指标值(昨天))/指标值(昨天)。
    , @level1name = N'DiskCapacityHistory'
    , @level0type = N'SCHEMA'
    , @level2name = N'IsPercentGrowth';


    DROP TABLE DiskCapacityHistory;
    , @value = '文件最大大小'
    , @level0name = N'dbo'
    , @level1name = N'DiskCapacityHistory'

复制代码 代码如下:

首先我们创建一个表DiskCapacityHistory,用来保存数据库文件的历史增长变化信息:


    , @level2type = N'COLUMN'
    , @level1type = N'TABLE'

IF  OBJECT_ID(N'sp_diskcapacity_cal')  IS NOT NULL
当然,你也可以把这四个指标都加上,对比参考,侧重点不同而已。

那么接下来就是我的设计思路和实现代码,目前只是简单实现,以后将继续优化,丰富一些功能。
    , @level1type = N'TABLE'
    [MaxSize]            NVARCHAR(32)            ,
    [StateDesc]          NVARCHAR(60)           ,
    , @value = '数据文件大小(GB)'
    , @level1name = N'DiskCapacityHistory'
    , @level2name = N'DataBaseID';

复制代码 代码如下:

    , @level2name = N'DataBaseName';
    , @value = '是否只读类型'
    , @level2type = N'COLUMN'

    , @level2type = N'COLUMN'
    , @level1name = N'DiskCapacityHistory'
    , @level1name = N'DiskCapacityHistory'

EXEC sys.sp_addextendedproperty @name = N'MS_Description'

前几天,在所有数据库服务器部署了监控磁盘空间的存储过程和作业后(MS SQL 监控磁盘空间告警),今天突然收到了两封告警邮件,好吧,存储规划是一方面,但是,是不是要分析一下是什么原因造成磁盘空间不足的呢?会不会是因为突然暴增的日志文件,抑或是系统业务猛增导致数据量暴增,还是历史数据累计原因....分析总得有数据来支撑吧,但是现在只有那些数据文件的当前大小信息,没有数据文件的历史增长变化信息,所以,今天就想实现这么一个功能,每天(频率可以调整)去收集一下数据文件的信息,放到一个表里面,这样方便我们分析数据文件的增长演变例程,甚至你可以将数据文件的增长幅度和业务变化关联起来分析....
    , @level0name = N'dbo'
    [FileID]             INT                     ,
    , @level2name = N'Date_CD';
    , @level0name = N'dbo'
    , @level1type = N'TABLE'
    , @level1type = N'TABLE'
    , @value = '数据库逻辑名称'
    DROP PROCEDURE sp_diskcapacity_cal;
    [IsPercentGrowth]    SMALLINT                ,
IF  EXISTS (SELECT 1 FROM dbo.sysobjects WHERE id = OBJECT_ID(N'') AND xtype='U')
    , @level0type = N'SCHEMA'
GO
    [Date_CD]            INT                     ,
USE  msdb;
    , @level2type = N'COLUMN'
    , @level1type = N'TABLE'
    , @level2name = N'GrowthType';
    , @level2type = N'COLUMN'
    , @level2name = N'FileID';

    , @level2type = N'COLUMN'
EXEC sys.sp_addextendedproperty @name = N'MS_Description'
    , @level2name = N'Growth_YOY_RAT';
    , @level0type = N'SCHEMA'
    , @level1name = N'DiskCapacityHistory'
    , @level0type = N'SCHEMA'
    [FileTypeDesc]       NVARCHAR(60)            ,
    , @level1type = N'TABLE'
    , @level2name = N'Size';
 EXEC sys.sp_addextendedproperty @name = N'MS_Description'
EXEC sys.sp_addextendedproperty @name = N'MS_Description'
    , @level1type = N'TABLE'

CREATE TABLE dbo.DiskCapacityHistory
    [Growth_YOY_RAT]     FLOAT                   ,
    , @value = '物理数据库文件'

接下来,我们创建存储过程,负责来收集、统计这些数据库的文件的相关信息。关于环比/同比,正常情况一般是:

相关热词: MSSQL 方法

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://v30.fanwenzhu.com/sql/mssql/1737.shtml

Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

MSSQL 监控数据/日志文件增长实现方法

2020-12-09 编辑:网络

    , @level1name = N'DiskCapacityHistory'
    , @value = '日期编码'
 
    , @level2name = N'IsReadOnly';
GO

    , @level1type = N'TABLE'

    , @level1name = N'DiskCapacityHistory'
    , @value = '数据库标识'


   

EXEC sys.sp_addextendedproperty @name = N'MS_Description'
    , @level0type = N'SCHEMA'
同比:  (指标当前值 - 指标值(去年月同一天))/ 指标值(去年月同一天) 。
    , @level2name = N'FileTypeDesc';
    , @level1name = N'DiskCapacityHistory'

GO

GO
    , @level1type = N'TABLE'
同比: (指标当前值 - 指标值 (上个月))/指标值(上个月)
    CONSTRAINT PK_DiskCapacityHistory PRIMARY KEY(Date_CD, DataBaseID, FileID)    
    , @level2type = N'COLUMN'
    [IsReadOnly]         INT                     ,
    [PhysicalName]       NVARCHAR(260)          ,
    , @level0name = N'dbo'
环比:  (指标当前值 - 指标值(上个月同一天))/ 指标值(上个月同一天) 。
(
    , @level1name = N'DiskCapacityHistory'
    , @value = '文件增长环比(%)'
EXEC sys.sp_addextendedproperty @name = N'MS_Description'

    , @level0type = N'SCHEMA'
    [Size]               FLOAT                   ,
    , @level0name = N'dbo'
    , @value = '文件标识'
);
EXEC sys.sp_addextendedproperty @name = N'MS_Description'
其实如果关注每天的数据文件变化情况,这个代码里面的环比、同比其实意义不大,其实我们可以这样定义环比、同比:

    , @level0name = N'dbo'
    , @level1type = N'TABLE'

EXEC sys.sp_addextendedproperty @name = N'MS_Description'
EXEC sys.sp_addextendedproperty @name = N'MS_Description'
    , @level0type = N'SCHEMA'
    , @level2type = N'COLUMN'
    [DataBaseID]         INT                     ,
    , @level0type = N'SCHEMA'
    , @level0name = N'dbo'

    , @level1name = N'DiskCapacityHistory'
EXEC sys.sp_addextendedproperty @name = N'MS_Description'
    , @level2name = N'PhysicalName';
    , @level1name = N'DiskCapacityHistory'
    , @level1type = N'TABLE'
    , @level1type = N'TABLE'
    , @level0name = N'dbo'


    , @value = '文件增长类型'
    [GrowthType]         NVARCHAR(8)             ,
EXEC sys.sp_addextendedproperty @name = N'MS_Description'
    , @level0name = N'dbo'
    , @level0type = N'SCHEMA'
    , @level2type = N'COLUMN'
    [LogicalName]        VARCHAR(32)             ,
EXEC sys.sp_addextendedproperty @name = N'MS_Description'
    , @level2type = N'COLUMN'

    , @level1type = N'TABLE'
    , @level0type = N'SCHEMA'
    , @level1name = N'DiskCapacityHistory'
    , @level0type = N'SCHEMA'
    , @level0type = N'SCHEMA'

复制代码 代码如下:

    , @level0name = N'dbo'
    , @level0name = N'dbo'
    , @level0type = N'SCHEMA'
    [DataBaseName]       sysname                 ,


    , @level0type = N'SCHEMA'
EXEC sys.sp_addextendedproperty @name = N'MS_Description'
    , @value = '文件类型描述'
    , @level2name = N'LogicalName';
    , @value = '数据库名称'


    [Growth_MOM_RAT]     FLOAT                   ,
    , @level1type = N'TABLE'
    , @level1name = N'DiskCapacityHistory'
EXEC sys.sp_addextendedproperty @name = N'MS_Description'
    , @level2name = N'Growth_MOM_RAT';
    , @level2type = N'COLUMN'
    , @level2name = N'MaxSize';
    , @level2type = N'COLUMN'

 
    , @value = '是否按百分比增长'
    , @level2type = N'COLUMN'
    , @level0name = N'dbo'
    , @value = '文件增长同比(%)'
    , @level2type = N'COLUMN'

    , @level0name = N'dbo'

    , @level0name = N'dbo'
环比: (指标当前值 - 指标值(昨天))/指标值(昨天)。
    , @level1name = N'DiskCapacityHistory'
    , @level0type = N'SCHEMA'
    , @level2name = N'IsPercentGrowth';


    DROP TABLE DiskCapacityHistory;
    , @value = '文件最大大小'
    , @level0name = N'dbo'
    , @level1name = N'DiskCapacityHistory'

复制代码 代码如下:

首先我们创建一个表DiskCapacityHistory,用来保存数据库文件的历史增长变化信息:


    , @level2type = N'COLUMN'
    , @level1type = N'TABLE'

IF  OBJECT_ID(N'sp_diskcapacity_cal')  IS NOT NULL
当然,你也可以把这四个指标都加上,对比参考,侧重点不同而已。

那么接下来就是我的设计思路和实现代码,目前只是简单实现,以后将继续优化,丰富一些功能。
    , @level1type = N'TABLE'
    [MaxSize]            NVARCHAR(32)            ,
    [StateDesc]          NVARCHAR(60)           ,
    , @value = '数据文件大小(GB)'
    , @level1name = N'DiskCapacityHistory'
    , @level2name = N'DataBaseID';

复制代码 代码如下:

    , @level2name = N'DataBaseName';
    , @value = '是否只读类型'
    , @level2type = N'COLUMN'

    , @level2type = N'COLUMN'
    , @level1name = N'DiskCapacityHistory'
    , @level1name = N'DiskCapacityHistory'

EXEC sys.sp_addextendedproperty @name = N'MS_Description'

前几天,在所有数据库服务器部署了监控磁盘空间的存储过程和作业后(MS SQL 监控磁盘空间告警),今天突然收到了两封告警邮件,好吧,存储规划是一方面,但是,是不是要分析一下是什么原因造成磁盘空间不足的呢?会不会是因为突然暴增的日志文件,抑或是系统业务猛增导致数据量暴增,还是历史数据累计原因....分析总得有数据来支撑吧,但是现在只有那些数据文件的当前大小信息,没有数据文件的历史增长变化信息,所以,今天就想实现这么一个功能,每天(频率可以调整)去收集一下数据文件的信息,放到一个表里面,这样方便我们分析数据文件的增长演变例程,甚至你可以将数据文件的增长幅度和业务变化关联起来分析....
    , @level0name = N'dbo'
    [FileID]             INT                     ,
    , @level2name = N'Date_CD';
    , @level0name = N'dbo'
    , @level1type = N'TABLE'
    , @level1type = N'TABLE'
    , @value = '数据库逻辑名称'
    DROP PROCEDURE sp_diskcapacity_cal;
    [IsPercentGrowth]    SMALLINT                ,
IF  EXISTS (SELECT 1 FROM dbo.sysobjects WHERE id = OBJECT_ID(N'') AND xtype='U')
    , @level0type = N'SCHEMA'
GO
    [Date_CD]            INT                     ,
USE  msdb;
    , @level2type = N'COLUMN'
    , @level1type = N'TABLE'
    , @level2name = N'GrowthType';
    , @level2type = N'COLUMN'
    , @level2name = N'FileID';

    , @level2type = N'COLUMN'
EXEC sys.sp_addextendedproperty @name = N'MS_Description'
    , @level2name = N'Growth_YOY_RAT';
    , @level0type = N'SCHEMA'
    , @level1name = N'DiskCapacityHistory'
    , @level0type = N'SCHEMA'
    [FileTypeDesc]       NVARCHAR(60)            ,
    , @level1type = N'TABLE'
    , @level2name = N'Size';
 EXEC sys.sp_addextendedproperty @name = N'MS_Description'
EXEC sys.sp_addextendedproperty @name = N'MS_Description'
    , @level1type = N'TABLE'

CREATE TABLE dbo.DiskCapacityHistory
    [Growth_YOY_RAT]     FLOAT                   ,
    , @value = '物理数据库文件'

接下来,我们创建存储过程,负责来收集、统计这些数据库的文件的相关信息。关于环比/同比,正常情况一般是:

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://v30.fanwenzhu.com/sql/mssql/1737.shtml

相关文章

风云图片

推荐阅读

返回mssql频道首页