一个统计表每天的新增行数及新增存储空间的功能

使用文中提供的代码做一个统计表每天的新增行数及新增存储空间的功能

实现步骤如下:

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 [时间段范围]

时间: 2024-10-01 20:02:11

一个统计表每天的新增行数及新增存储空间的功能的相关文章

一个统计表每天的新增行数及新增存储空间的功能_MsSql

使用文中提供的代码做一个统计表每天的新增行数及新增存储空间的功能 实现步骤如下: 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] [big

python中统计一个文本中的重复行数

比如有下面一个文件 2 3 1 2 我们期望得到 2,2 3,1 1,1 解决问题的思路: 出现的文本作为key, 出现的数目作为value,然后按照value排除后输出 最好按照value从大到小输出出来,可以参照  代码如下 复制代码 in recent Python 2.7, we have new OrderedDict type, which remembers the order in which the items were added. >>> d = {"th

android-SQLite 数据库表的行数

问题描述 SQLite 数据库表的行数 如何计算一个SqLite数据库表的行数?我创建的一个表格名称是my_table,这个表格有name info 和number这两列. 解决方案 你可以使用 rawQuery count(*),可以返回一个表中的行数. cursor=db.rawQuery("Select count(*) from my_table;", null); 解决方案二: 使用SELECT COUNT(*) FROM " + DB_TABLE_PLACES查询

Python实现代码行数自动统计实例

此功能用到了2个常用的Python标准库os和sys模块就解决. 可能是因为这段时间在做的一个Python项目,用的是一个公司内部的IDE环境,而这个IDE环境产生的py代码并不是以文本方式存储,都是放在二进制文件里面的. 由于这门语言外界几乎接触不到,所以没有针对它的代码统计程序.一个模块完成后要统计代码行数会很困难的,要统计的话只能手工来操作,这不符合我们程序员的一惯风格. 在这期间我一直在关注python语言,但是还没有动手真正的写python程序 .今天就利用中午休息的时间写了一个简单的

使用一个T-SQL语句批量查询数据表占用空间及其行数

原文:使用一个T-SQL语句批量查询数据表占用空间及其行数   要找到数据库中数据表占用的空间和存在的行数.可以使用sp_spaceused搭配数据表的名称.就可以产生该表耗用的空间和现有行数. 如: USE ADVENTUREWORKS GO EXEC sp_spaceused [Sales.SalesOrderHeader] GO     但如果数据库中包含数千的数据表,如何能利用一句SQL语句来实现?   解决方法: 一.动态SQL: 先用T-SQL动态产生表达式,然后放到一个查询中执行.

在adodb.php中有没有一个方法可以返回 update语句,影响的行数

问题描述 在adodb.php中有没有一个方法可以返回 update语句,影响的行数 如题在adodb.php中有没有一个方法可以返回 update语句,影响的行数

objective-c-ios 超过一定行数的label强制在末尾加上一个...展开且可以点击成全文

问题描述 ios 超过一定行数的label强制在末尾加上一个...展开且可以点击成全文 如题 比如 这个UIlabel 本该显示成 顶顶顶顶顶顶顶顶顶顶的大多数是是是是 顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶 谁谁谁水水水水是是是是是是是是是是撒 大多数是山东省撒打算打算打算打算的收 水电费第三方第三方说的发送到发送到范 水电费第三方士大夫士大夫. 但是 现在业务要求最多显示3行 如果小于3行有多少航显示多少行 超过三行的话显示如下 顶顶顶顶顶顶顶顶顶顶的大多数是是是是 顶顶顶顶顶顶顶顶顶顶顶顶顶

python统计一个文本中重复行数的方法_python

本文实例讲述了python统计一个文本中重复行数的方法.分享给大家供大家参考.具体实现方法如下: 比如有下面一个文件 2 3 1 2 我们期望得到 2,2 3,1 1,1 解决问题的思路: 出现的文本作为key, 出现的数目作为value,然后按照value排除后输出 最好按照value从大到小输出出来,可以参照: 复制代码 代码如下: in recent Python 2.7, we have new OrderedDict type, which remembers the order in

调试-C++能不能输入一个代码行数,然后程序就跳过之前的代码

问题描述 C++能不能输入一个代码行数,然后程序就跳过之前的代码 C++能不能输入一个代码行数,然后程序就跳过之前的代码,从这里开始执行?能不能记录下当前所有的变量就像调试的那样 解决方案 你可以在程序中增加标号,根据需要,用switch语句判断后跳转执行. 解决方案二: 直接注释掉不就行了? 变量的值可以在自动窗口看 解决方案三: 指定一个Java文件,输入其代码行数C++代码行数