📄 space_watcher.sql
字号:
select SPACES.Db_Nm,
SPACES.TS,
MAX(DECODE(SPACES.Check_Date,
TRUNC(SysDate - 28),
ROUND(100 * Sum_Free_Blocks / Sum_File_Blocks),
0)) Week1,
MAX(DECODE(SPACES.Check_Date,
TRUNC(SysDate - 21),
ROUND(100 * Sum_Free_Blocks / Sum_File_Blocks),
0)) Week2,
MAX(DECODE(SPACES.Check_Date,
TRUNC(SysDate - 14),
ROUND(100 * Sum_Free_Blocks / Sum_File_Blocks),
0)) Week3,
MAX(DECODE(SPACES.Check_Date,
TRUNC(SysDate - 7),
ROUND(100 * Sum_Free_Blocks / Sum_File_Blocks),
0)) Week4,
MAX(DECODE(SPACES.Check_Date,
TRUNC(SysDate),
ROUND(100 * Sum_Free_Blocks / Sum_File_Blocks),
0)) Today,
MAX(DECODE(SPACES.Check_Date,
TRUNC(SysDate),
ROUND(100 * Sum_Free_Blocks / Sum_File_Blocks),
0)) -
MAX(DECODE(SPACES.Check_Date,
TRUNC(SysDate - 28),
ROUND(100 * Sum_Free_Blocks / Sum_File_Blocks),
0)) Change
from SPACES, FILES_TS_VIEW FTV
where SPACES.Db_Nm = FTV.Db_Nm /*same DB name*/
and SPACES.TS = FTV.TS /*same TS name*/
and SPACES.Check_Date = ftv.Check_Date /*same check date*/
and exists /*does ts exist?*/
(select 'x'
from SPACES x
where x.Db_Nm = SPACES.Db_Nm
and x.TS = SPACES.TS
and x.Check_Date = TRUNC(SysDate))
group by SPACES.Db_Nm, SPACES.TS
having /*has percentfree dropped 5 pct?*/
(MAX(DECODE(SPACES.Check_Date, TRUNC(SysDate), ROUND(100 * Sum_Free_Blocks / Sum_File_Blocks), 0)) - MAX(DECODE(SPACES.Check_Date, TRUNC(SysDate - 28), ROUND(100 * Sum_Free_Blocks / Sum_File_Blocks), 0)) > 5) or /*is percentfree less than 10?*/
(MAX(DECODE(SPACES.Check_Date, TRUNC(SysDate), ROUND(100 * Sum_Free_Blocks / Sum_File_Blocks), 0)) < 10)
order by SPACES.Db_Nm,
DECODE(MAX(DECODE(SPACES.Check_Date,
TRUNC(SysDate),
ROUND(100 * Sum_Free_Blocks / Sum_File_Blocks),
0)) -
MAX(DECODE(SPACES.Check_Date,
TRUNC(SysDate - 28),
ROUND(100 * Sum_Free_Blocks / Sum_File_Blocks),
0)),
0,
9999,
MAX(DECODE(SPACES.Check_Date,
TRUNC(SysDate),
ROUND(100 * Sum_Free_Blocks / Sum_File_Blocks),
0)) -
MAX(DECODE(SPACES.Check_Date,
TRUNC(SysDate - 28),
ROUND(100 * Sum_Free_Blocks / Sum_File_Blocks),
0))),
MAX(DECODE(SPACES.Check_Date,
TRUNC(SysDate),
ROUND(100 * Sum_Free_Blocks / Sum_File_Blocks),
0))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -