一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Sql Server - 一個統計表每天的新增行數及新增存儲空間的功能

一個統計表每天的新增行數及新增存儲空間的功能

2020-04-02 15:24whsnow Sql Server

這篇文章主要介紹了一個統計表每天的新增行數及新增存儲空間的功能,需要的朋友可以參考下

使用文中提供的代碼做一個統計表每天的新增行數及新增存儲空間的功能

實現步驟如下:

1. 創建表

創建表,存儲每天的表空間占用情況

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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代碼為:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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. 查詢結果

連續的數據記錄之間做比較,即可得到數據的增量變化情況

示例代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
;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 [時間段范圍]

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日b视频免费看 | 99久久国产综合精麻豆 | 国产亚洲欧美在线中文bt天堂网 | 美女被扒开屁股进去网 | 亚洲天堂2016| 亚洲高清成人 | 双性np玩烂了np欲之国的太子 | 国产一级持黄大片99久久 | 亚洲欧美日韩中文字幕久久 | 国产成人精品1024在线 | 91久久色| gogo人体模特啪啪季玥图片 | 国产剧情麻豆刘玥视频 | 村妇超级乱淫伦小说全集 | 久草热8精品视频在线观看 久草草在线视视频 | 国产v在线播放 | 福利视频一区二区牛牛 | 亚洲人成影院午夜网站 | 久久毛片网站 | 欧美一级视频免费观看 | 国产午夜精品久久理论片小说 | 国产成人综合网 | 亚洲天堂免费观看 | 大肥婆丰满大肥奶bbw肥 | 俄罗斯激情性孕妇孕交大全 | 精品亚洲一区二区三区在线播放 | 91久久精品国产一区二区 | 日韩在线一区 | 精品国产成人a区在线观看 精品高潮呻吟99AV无码视频 | 亚洲福利一区二区三区 | 亚洲国产在线视频精品 | 91久久偷偷做嫩草影院电 | ai换脸明星造梦工厂忘忧草 | 近亲乱中文字幕 | 色花堂中文字幕98堂网址 | 亚洲欧美日韩国产一区二区精品 | 高h全肉动漫在线观看免费 高h辣h双处全是肉军婚 | 国产视频91在线 | 亚洲欧美在线观看首页 | 天天爱天天操天天射 | 手机在线观看国产精选免费 |