创建视图,查询表空间的利用情况
首先創(chuàng)建視圖:
create?or?replace?view?dba_tablespace_free?as
select?a.tablespace_name,a.total_space_mb?allocated_space_mb,round(b.free_space_mb,2)?free_space_mb,(a.max_space-a.total_space_mb)?free_allocate_mb,round(a.max_space,2)?max_space_mb,
round((a.total_space_mb-b.free_space_mb)/a.total_space_mb*100,2)?pct_usage,round(a.total_space_mb/a.max_space*100,2)?pct_allocated
from?(select?tablespace_name,sum(bytes)/1024/1024?total_space_Mb,decode(sum(maxbytes/1024/1024),0,
sum(bytes)/1024/1024,sum(case?when?AUTOEXTENSIBLE='YES'?then?maxbytes
else?bytes?end)/1024/1024)?max_space
from?dba_data_files?group?by?tablespace_name)a,(select?tablespace_name,?sum((bytes)/1024/1024)?free_space_Mb
from?dba_free_space?group?by?tablespace_name)?b?where?a.tablespace_name=b.tablespace_name;
報(bào)錯(cuò):01031:insufficient?privileges
?
賦權(quán):SQL>?grant?select?any?table?to?chenjh;
??????SQL>?grant?select?any?dictionary?to?chenjh;
??????SQL>?grant?select?any?table,create?view?to?chenjh;
?
賦權(quán)后再創(chuàng)建視圖成功:
查詢此視圖:
SELECT?UPPER(F.TABLESPACE_NAME)?"表空間名",
D.TOT_GROOTTE_MB?"表空間大小(M)",
D.TOT_GROOTTE_MB?-?F.TOTAL_BYTES?"已使用空間(M)",
TO_CHAR(ROUND((D.TOT_GROOTTE_MB?-?F.TOTAL_BYTES)?/?D.TOT_GROOTTE_MB?*?100,2),'990.99')?||?'%'?"使用比",
F.TOTAL_BYTES?"已擴(kuò)展空閑空間(M)",
(SELECT?free_space_mb+free_allocate_mb?FROM?dba_tablespace_free?a?where?a.tablespace_name=?f.tablespace_name)?"總剩余空間",
F.MAX_BYTES?"最大塊(M)"
FROM?(SELECT?TABLESPACE_NAME,
ROUND(SUM(BYTES)?/?(1024?*?1024),?2)?TOTAL_BYTES,
ROUND(MAX(BYTES)?/?(1024?*?1024),?2)?MAX_BYTES
FROM?SYS.DBA_FREE_SPACE
GROUP?BY?TABLESPACE_NAME)?F,
(SELECT?DD.TABLESPACE_NAME,
ROUND(SUM(DD.BYTES)?/?(1024?*?1024),?2)?TOT_GROOTTE_MB
FROM?SYS.DBA_DATA_FILES?DD
GROUP?BY?DD.TABLESPACE_NAME)?D
WHERE?D.TABLESPACE_NAME?=?F.TABLESPACE_NAME
ORDER?BY?3?desc;
效果圖:
轉(zhuǎn)載于:https://blog.51cto.com/1336014/1337267
總結(jié)
以上是生活随笔為你收集整理的创建视图,查询表空间的利用情况的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: SharePoint 2013 图文开发
- 下一篇: oralce 异常处理 exceptio