我们每周都会得到数据库表空间报告,我只想知道如何在比较上周和本周后生成报告。
请找到以下示例文件。
上周报告:
Tab Page Num Total Used Free Percent
Id TableSpace Name Type Size State Cont Pages Pages Pages Used
--- --------------- ---- ----- -------- ---- ------- --------- --------- -------
0 SYSCATSPACE SMS 4096 0x0000 1 96511 - - -
1 SYSTOOLSPACE SMS 4096 0x0000 1 257 - - -
2 USERSPACE1 SMS 4096 0x0000 8 36419005 - - -
3 TSD03 DMS 4096 0x0000 6 7614640 5632000 1980928 73.96
4 TSI03 DMS 4096 0x0000 5 5999664 5607680 389888 93.46
5 TSD02 DMS 4096 0x0000 3 2266080 2155264 109568 95.10
6 TSI02 DMS 4096 0x0000 3 2555904 2396928 158592 93.78
7 TS08 DMS 4096 0x0000 6 44703680 37979328 6724160 84.95
8 TS10 DMS 4096 0x0000 1 3248576 1375872 1872672 42.35
9 TSD04 DMS 4096 0x0000 4 163840 151738 12094 92.61
10 TSI04 DMS 4096 0x0000 2 67584 28960 38620 42.85
11 TSD05 DMS 4096 0x0000 3 1572864 1448960 123136 92.12
12 TSI05 DMS 4096 0x0000 3 1310720 963328 346624 73.49
本周报告:
Tab Page Num Total Used Free Percent
Id TableSpace Name Type Size State Cont Pages Pages Pages Used
--- --------------- ---- ----- -------- ---- ------- --------- --------- -------
0 SYSCATSPACE SMS 4096 0x0000 1 96511 - - -
1 SYSTOOLSPACE SMS 4096 0x0000 1 257 - - -
2 USERSPACE1 SMS 4096 0x0000 8 36342895 - - -
3 TSD03 DMS 4096 0x0000 6 7614640 5620224 1992704 73.80
4 TSI03 DMS 4096 0x0000 5 5999664 5592320 405248 93.21
5 TSD02 DMS 4096 0x0000 3 2266080 2150912 113920 94.91
6 TSI02 DMS 4096 0x0000 3 2555904 2393472 162048 93.64
7 TS08 DMS 4096 0x0000 6 44703680 37881632 6821856 84.73
8 TS10 DMS 4096 0x0000 1 3248576 1367008 1881536 42.08
9 TSD04 DMS 4096 0x0000 4 163840 151362 12470 92.38
10 TSI04 DMS 4096 0x0000 2 67584 28886 38694 42.74
11 TSD05 DMS 4096 0x0000 3 1572864 1448704 123392 92.10
12 TSI05 DMS 4096 0x0000 3 1310720 963072 346880 73.47
所需的报告(仅标题):
Tab Page Num Total Used Free Last_weekPercent New_week Percent Difference (or) Growth
Id TableSpace Name Type Size State Cont Pages Pages Pages Used Used
答案1
快速解决方案:
perl -lane '1..eof?$p[$F[0]]=$F[9]:print$_,sprintf("%8s%8.2f",$p[$F[0]],$F[9]-$p[$F[0]])' this_weeks_report last_weeks_report
输出:
Tab Page Num Total Used Free Percent - 0.00
Id TableSpace Name Type Size State Cont Pages Pages Pages Used - 0.00
--- --------------- ---- ----- -------- ---- ------- --------- --------- ------- - 0.00
0 SYSCATSPACE SMS 4096 0x0000 1 96511 - - - - 0.00
1 SYSTOOLSPACE SMS 4096 0x0000 1 257 - - - - 0.00
2 USERSPACE1 SMS 4096 0x0000 8 36342895 - - - - 0.00
3 TSD03 DMS 4096 0x0000 6 7614640 5620224 1992704 73.80 73.96 -0.16
4 TSI03 DMS 4096 0x0000 5 5999664 5592320 405248 93.21 93.46 -0.25
5 TSD02 DMS 4096 0x0000 3 2266080 2150912 113920 94.91 95.10 -0.19
6 TSI02 DMS 4096 0x0000 3 2555904 2393472 162048 93.64 93.78 -0.14
7 TS08 DMS 4096 0x0000 6 44703680 37881632 6821856 84.73 84.95 -0.22
8 TS10 DMS 4096 0x0000 1 3248576 1367008 1881536 42.08 42.35 -0.27
9 TSD04 DMS 4096 0x0000 4 163840 151362 12470 92.38 92.61 -0.23
10 TSI04 DMS 4096 0x0000 2 67584 28886 38694 42.74 42.85 -0.11
11 TSD05 DMS 4096 0x0000 3 1572864 1448704 123392 92.10 92.12 -0.02
12 TSI05 DMS 4096 0x0000 3 1310720 963072 346880 73.47 73.49 -0.02
评论:
这不处理标题。为此,您最好将一行代码扩展为一个完整的脚本,您可以在其中更轻松地微调输出并添加更多功能以满足您的需求。