매주 데이터베이스 테이블스페이스 보고서를 받고 있는데 지난주와 이번주를 비교한 후 보고서를 생성하는 방법을 알고 싶습니다.
다음 샘플 파일을 찾으십시오.
지난 주 보고서:
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
논평:
헤더는 처리하지 않습니다. 이렇게 하려면 한 줄의 코드를 완전한 스크립트로 확장하는 것이 좋습니다. 그러면 출력을 더 쉽게 미세 조정하고 필요에 맞게 더 많은 기능을 추가할 수 있습니다.