一个统计表每天的新增行数及新增存储空间的功能
一个 功能 新增 每天 存储空间 行数 统计表
2023-06-13 09:15:39 时间
使用文中提供的代码做一个统计表每天的新增行数及新增存储空间的功能
实现步骤如下:
1.创建表
创建表,存储每天的表空间占用情况
CREATETABLE[dbo].[t_rpt_table_spaceinfo]( [table_name][sysname]NOTNULL, [record_date][date]NOTNULL, [record_time][time](7)NOTNULL, [rows_count][bigint]NULL, [reserved][bigint]NULL, [data_size][bigint]NULL, [index_size][bigint]NULL, [unused][bigint]NULL, CONSTRAINT[PK_t_rpt_table_spaceinfo]PRIMARYKEYCLUSTERED ( [table_name]ASC, [record_date]ASC, [record_time]ASC ) )
2.新建作业
新建作业,作业计划每天凌晨运行一次,每天记录表占用的空间情况,存储到上一步建立的表中
作业中执行的T-SQL代码为:
SETNOCOUNTON /*创建临时表,存放用户表的空间及数据行数信息*/ CREATETABLE#tablespaceinfo ( nameinfoVARCHAR(500), rowsinfoBIGINT, reservedVARCHAR(20), datainfoVARCHAR(20), index_sizeVARCHAR(20), unusedVARCHAR(20) ) DECLARE@tablenameVARCHAR(255); /*使用游标,循环得到表空间使用情况*/ DECLAREInfo_cursorCURSOR FOR SELECT"["+[name]+"]" FROMsys.tables WHEREtype="U"; OPENInfo_cursor FETCHNEXTFROMInfo_cursorINTO@tablename WHILE@@FETCH_STATUS=0 BEGIN INSERTINTO#tablespaceinfo EXECsp_spaceused@tablename FETCHNEXTFROMInfo_cursor INTO@tablename END INSERTINTOt_rpt_table_spaceinfo (record_date,record_time,[table_name],[rows_count] ,reserved,[data_size],index_size,unused) SELECTconvert(date,getdate()),convert(varchar(8),getdate(),114),nameinfo,rowsinfo ,CAST(REPLACE(reserved,"KB","")ASBIGINT),CAST(REPLACE(datainfo,"KB","")ASBIGINT) ,CAST(REPLACE(index_size,"KB","")ASBIGINT),CAST(REPLACE(unused,"KB","")ASBIGINT) FROM#tablespaceinfo CLOSEInfo_cursor DEALLOCATEInfo_cursor DROPTABLE[#tablespaceinfo]
3.查询结果
连续的数据记录之间做比较,即可得到数据的增量变化情况
示例代码如下:
;withtable_spaceinfoas ( selectrecord_date,record_time,table_name,rows_count,reserved,data_size,index_size,unused ,ROW_NUMBER()over(PARTITIONbytable_nameorderbyrecord_date,record_timeasc)aslist_no fromt_rpt_table_spaceinfo ) select_a.table_nameas表名,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_countas[新增的行数] ,_b.data_size-_a.data_sizeas[新增数据空间(KB)] fromtable_spaceinfo_a jointable_spaceinfo_bon_a.table_name=_b.table_nameand_a.list_no=_b.list_no-1 orderby[时间段范围]
相关文章
- 数据透视表上线!如何在纯前端实现这个强大的数据分析功能?
- 一个提供公告和打赏功能的 django 应用插件 django-tctip
- 零侵入性:一个注解,优雅的实现循环重试功能
- 编写测试用例及一个例子
- 一个不用写代码的案例,来看看Flowable到底给我们提供了哪些功能?
- 零侵入性:一个注解,优雅的实现循环重试功能
- JS面试题-手动实现一个instanceof功能
- 在“古董级” 诺基亚功能机上跑Linux是怎样的画风?表示想拥有一个
- 分享一个EDU案例~
- 「Go工具箱」推荐一个实现进度条功能的工具:uiprogress
- 一个要干翻推特的 Damus,来了!
- 2023-04-15:ffmpeg的filter_audio.c的功能是生成一个正弦波音频,然后通过简单的滤镜链,最后输出数据的MD5校验和。请用go语言改写。
- PHP file_get_contents():将文件读入一个字符串
- YaBS 是一个企业资源计划软件,用来管理包括产品和联系人信息,功能包括采购需求、订单、发票和提醒,功能非常强大,支持各种兼容JDBC 的数据库,可扩展性很强。
- MySQL存储过程开发实践:一个简单的实例(mysql存储过程案例)
- Linux目录链接:一个有用的功能(linux 目录 链接)
- 比较MySQL和Oracle:哪一个更适合你?(mysql和oracle)
- 利用Oracle简化数据处理(oracle写一个方法)
- msn上的tab功能Firefox对childNodes处理的一个BUG
- javascript将数组插入到另一个数组中的代码
- 用js写了一个类似php的print_r输出换行功能
- php中使用$_REQUEST需要注意的一个问题