一个统计表每天的新增行数及新增存储空间的功能
作者:whsnow 发布时间:2024-01-13 22:27:40
标签:统计表,行数,存储空间
使用文中提供的代码做一个统计表每天的新增行数及新增存储空间的功能
实现步骤如下:
1. 创建表
创建表,存储每天的表空间占用情况
CREATE TABLE [dbo].[t_rpt_table_spaceinfo](
[table_name] [sysname] NOT NULL,
[record_date] [date] NOT NULL,
[record_time] [time](7) NOT NULL,
[rows_count] [bigint] NULL,
[reserved] [bigint] NULL,
[data_size] [bigint] NULL,
[index_size] [bigint] NULL,
[unused] [bigint] NULL,
CONSTRAINT [PK_t_rpt_table_spaceinfo] PRIMARY KEY CLUSTERED
(
[table_name] ASC,
[record_date] ASC,
[record_time] ASC
)
)
2. 新建作业
新建作业,作业计划每天凌晨运行一次,每天记录表占用的空间情况,存储到上一步建立的表中
作业中执行的T-SQL代码为:
SET NOCOUNT ON
/*创建临时表,存放用户表的空间及数据行数信息*/
CREATE TABLE #tablespaceinfo
(
nameinfo VARCHAR(500) ,
rowsinfo BIGINT ,
reserved VARCHAR(20) ,
datainfo VARCHAR(20) ,
index_size VARCHAR(20) ,
unused VARCHAR(20)
)
DECLARE @tablename VARCHAR(255);
/*使用游标,循环得到表空间使用情况*/
DECLARE Info_cursor CURSOR
FOR
SELECT '[' + [name] + ']'
FROM sys.tables
WHERE type = 'U';
OPEN Info_cursor
FETCH NEXT FROM Info_cursor INTO @tablename
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO #tablespaceinfo
EXEC sp_spaceused @tablename
FETCH NEXT FROM Info_cursor
INTO @tablename
END
INSERT INTO t_rpt_table_spaceinfo
(record_date, record_time, [table_name], [rows_count]
, reserved, [data_size], index_size, unused)
SELECT convert(date,getdate()), convert(varchar(8),getdate(),114), nameinfo, rowsinfo
,CAST(REPLACE(reserved, 'KB', '') AS BIGINT) ,CAST(REPLACE(datainfo, 'KB', '') AS BIGINT)
,CAST(REPLACE(index_size, 'KB', '') AS BIGINT) ,CAST(REPLACE(unused, 'KB', '') AS BIGINT)
FROM #tablespaceinfo
CLOSE Info_cursor
DEALLOCATE Info_cursor
DROP TABLE [#tablespaceinfo]
3. 查询结果
连续的数据记录之间做比较,即可得到数据的增量变化情况
示例代码如下:
;with table_spaceinfo as
(
select record_date, record_time, table_name, rows_count, reserved, data_size, index_size, unused
,ROW_NUMBER() over(PARTITION by table_name order by record_date,record_time asc) as list_no
from t_rpt_table_spaceinfo
)
select _a.table_name as 表名,convert(varchar(20),_a.record_date)+' '+convert(varchar(8),_a.record_time)+'~~'
+convert(varchar(20),_b.record_date)+' '+convert(varchar(8),_b.record_time) as [时间段范围]
,_b.rows_count-_a.rows_count as [新增的行数]
,_b.data_size - _a.data_size as [新增数据空间(KB)]
from table_spaceinfo _a
join table_spaceinfo _b on _a.table_name=_b.table_name and _a.list_no=_b.list_no-1
order by [时间段范围]


猜你喜欢
- 概要介绍mmpi,是一款使用python实现的开源邮件快速检测工具库,基于community框架设计开发。mmpi支持对邮件头、邮件正文、邮
- 由于文件夹可能有多层目录,因此需要对其进行递归遍历。本文采取了简单的协议定制,定义了五条命令,指令Head如下:Sync:标识开始同步文件夹
- 安装pymysqlpip install pymysql2|0使用pymysql2|1使用数据查询语句查询一条数据fetchone()fro
- 使用webpack搭建单页面程序十分常见,但在实际开发中我们可能还会有开发多页面程序的需求,因此我研究了一下如何使用webpack搭建多页面
- 一、算法简要我们希望有这么一种函数:接受输入然后预测出类别,这样用于分类。这里,用到了数学中的sigmoid函数,sigmoid函数的具体表
- 运用webbrowser库中的一个函数实现自动打开浏览器:webbrowser.open(http://blog.csdn.net/ares
- 文本特征提取作用:对文本数据进行特征化(句子、短语、单词、字母)一般选用单词作为特征值方法一:CountVectorizersklearn.
- 代码如下:vbcrlfvbs常量相当于vbcr & vblf 就是常见的那个 chr(13) & chr(10),用Chr(
- get_template()中使用子目录把所有的模板都存放在一个目录下可能会让事情变得难以掌控。 你可能会考虑把模板存放在你模板目录的子目录
- 更新:优化了代码,理由numpy的ufunc函数功能替换了之前的双重for循环,测试图片大小为692*1024*3,优化前运行时间为6.9s
- 女友让我给她论文的图片上加上字母序号,本来觉得是个很简单的事情,但那个白底黑字的圆圈序号却难住了我, 试了几个常用的软件,都不行。后来用 P
- 在印刷排版中“point”是一个绝对的单位,它等于 1/72 英寸。可以用尺子丈量的,物理的英寸。但在CSS中pt的含义
- 本文实例讲述了python去除所有html标签的方法。分享给大家供大家参考。具体分析如下:这段代码可以用于去除文本里的字符串标签,不包括标签
- 最近在开发项目的过程中遇到一个问题,就是在插入一条记录的后要立即获取所在数据库中ID,而该ID是自增的,怎么做?在sql server 20
- Python打包分发工具setuptools:曾经 Python 的分发工具是 distutils,但它无法定义包之间的依赖关系。setup
- 我们首先来看下实例代码:import urllibimport urllib.requestimport refrom urllib imp
- 由于客户提供的是excel文件,在使用时期望使用csv文件格式,且对某些字段内容需要做一些处理,如从某个字段中固定的几位抽取出来,独立作为一
- 自定义指令中无法获取this问题最近在使用自定义指令时遇到一个问题,我想在指令里通过this直接去访问vue实例数据,但是显示未定义,经大佬
- 在学会了SELECT语句的构造和用途之后你就该学习如何使用它了。在你所掌握的数据库工具下,这可能意味着你得按下某个写着“执行”字样的按钮。在
- 先上图片词云图需要模板pip install jiebapip install wordcloud还需要安装另外两个东西这两个我也不太懂借鉴