Oracle tablespace监控项目版(六)

2014-11-24 09:43:40 · 作者: · 浏览: 5
INSTR(ALARM.ALIVeva lUE,',',1,2)-INSTR(ALARM.ALIVeva lUE,',',1)-1) ||'天未增长!'
ELSE
'警告 !!可能需要立即调整!'
END)
ELSE '警告!!!该空间达到或超过警告最大文件空间界限,为了不影响数据的正常运行,请立即处理!'
END)
END) "监控描述信息",
ALARM.IGBYTES "数据文件大小(G)",
ALARM.FILE_NAME "数据文件路径"
FROM DATAFILES_GE_MONITORING ALARM
WHERE ALARM.STATUS IN ('5','6');

UPDATE DATAFILES_GE_MONITORING UNM
SET UNM.STATUS = (CASE WHEN (SELECT COUNT(UNM1.FILE_NAME) * 31.998 - SUM(UNM1.IGBYTES)
FROM DATAFILES_GE_MONITORING UNM1
WHERE UNM1.TABLESPACE_NAME = UNM.TABLESPACE_NAME) < 0 THEN
'4'
ELSE
UNM.STATUS
END)
WHERE UNM.STATUS IN ('5','6');
COMMIT;

WITH ESTIMATE_01 AS (SELECT DECODE(TX.STATUS,'0','监控','1','数据未增长','3','暂时空闲','4','暂停监控','5','警告','6','报警') DS,
TX.TABLESPACE_NAME TB,
TX.IGBYTES IG,
--SUM(TX.IGBYTES) OVER (ORDER BY TX.FILE_NAME) "表空间累计监控值(G)",
TX.CURRENTDAYGBYTES CD,
TX.LASTDAYSGBYTES LD,
(CASE WHEN TX.LASTDAYSGBYTES = 0 THEN

(CASE WHEN TX.CURRENTDAYGBYTES >= 0 THEN
'Up Rate : ' || ROUND(TX.CURRENTDAYGBYTES*100,4) || '%'
ELSE
'Down Rate : ' || ROUND(TX.CURRENTDAYGBYTES*100,4) || '%'
END)
WHEN TX.CURRENTDAYGBYTES = 0 THEN
(CASE WHEN TX.LASTDAYSGBYTES > 0 THEN
'Down Rate : ' || ROUND(TX.LASTDAYSGBYTES*100,4) || '%'
ELSE
'Up Rate : ' || ROUND(TX.LASTDAYSGBYTES*100,4) || '%'
END)
ELSE
(CASE WHEN TX.CURRENTDAYGBYTES > 0 THEN
'Up Rate : ' || ROUND(TX.CURRENTDAYGBYTES/TX.LASTDAYSGBYTES*100,4) || '%'
ELSE
'Down Rate : ' || ROUND(TX.CURRENTDAYGBYTES/TX.LASTDAYSGBYTES*100,4) || '%'
END)
END) CLD,
TX.CURRENTWEEKGBYTES CW,
TX.LASTWEEKSGBYTES LW,
(CASE WHEN TX.LASTWEEKSGBYTES = 0 THEN
(CASE WHEN TX.CURRENTWEEKGBYTES >= 0 THEN
'Up Rate : ' || ROUND(TX.CURRENTWEEKGBYTES*100,4) || '%'
ELSE
'Down Rate : ' || ROUND(TX.CURRENTWEEKGBYTES*1