<?xml version="1.0" encoding="UTF-8" ?><displays><display id="a1172c89-0119-1000-8001-ac146e3cae78" type="" style="Table" enable="true">
<name><![CDATA[Tablespace Size]]></name>
<description><![CDATA[Get Tablespace Size and suggest space to add]]></description>
<tooltip><![CDATA[Get Tablespace Size]]></tooltip>
<drillclass><![CDATA[]]></drillclass>
<CustomValues>
<TYPE>STATUSMETER</TYPE>
</CustomValues>
<query>
<sql><![CDATA[ SELECT nvl(name,'=== TOTAL for DB ===') "Tablespace" ,
TO_CHAR(SUM(mbytes),'999,999,999.99') "Total MB" ,
TO_CHAR(SUM(used),'999,999,999.99') "Used MB" ,
TO_CHAR(SUM(free),'999,999,999.99') "Free MB" ,
ROUND(AVG(pct_used),2) "%Used" ,
ROUND(AVG(pct_free),2) "%Free" ,
'SQLDEV:GAUGE:0:100:0:0:'
|| AVG(pct_used) AS "Tablespace Utilization" ,
TO_CHAR(SUM(new_sz),'999,999,999.99') "Expected Size" ,
TO_CHAR(SUM(add_sz),'999,999,999.99') "Add MB for desired %"
FROM
(SELECT name ,
ROUND(mbytes,2) mbytes ,
ROUND(used,2) used ,
ROUND(free,2) free ,
ROUND(pct_used,2) pct_used,
ROUND(pct_free,2) pct_free,
ROUND(
CASE
WHEN ( ((100 *used)/ trim(:desired_pct))-mbytes < 0)
THEN mbytes
ELSE ((100*used)/ trim(:desired_pct))
END,2) new_sz,
ROUND(
CASE
WHEN ( (((100 *used)/ trim(:desired_pct))-mbytes) < 0 )
THEN 0
ELSE (((100 *used)/ trim(:desired_pct))-mbytes)
END,2) add_sz
FROM
(SELECT NVL(b.tablespace_name, NVL(a.tablespace_name,'UNKOWN')) name,
mbytes_alloc Mbytes ,
mbytes_alloc-NVL(mbytes_free,0) used ,
NVL(mbytes_free,0) free ,
((mbytes_alloc-NVL(mbytes_free,0))/ mbytes_alloc)*100 pct_used ,
100 -(((mbytes_alloc-NVL(mbytes_free,0))/ mbytes_alloc)*100) pct_free
FROM
(SELECT SUM(bytes)/1024/1024 Mbytes_free,
MAX(bytes) /1024/1024 largest ,
tablespace_name
FROM dba_free_space
GROUP BY tablespace_name
) a ,
(SELECT SUM(bytes)/1024/1024 Mbytes_alloc,
SUM(maxbytes) /1024/1024 Mbytes_max ,
tablespace_name
FROM sys.dba_data_files
GROUP BY tablespace_name
UNION ALL
SELECT SUM(bytes)/1024/1024 Mbytes_alloc,
SUM(maxbytes) /1024/1024 Mbytes_max ,
tablespace_name
FROM dba_temp_files
GROUP BY tablespace_name
) b
WHERE a.tablespace_name (+) = b.tablespace_name
)
)
GROUP BY rollup (name)
ORDER BY
CASE
WHEN name IS NULL
THEN 200
ELSE ROUND(AVG(pct_free),2)
END ASC]]></sql>
<binds>
<bind id="desired_pct">
<prompt><![CDATA[At what % you want to lower TBS?]]></prompt>
<value><![CDATA[50]]></value>
</bind>
</binds>
<columns>
<column>
<colName><![CDATA["Total MB"]]></colName>
</column>
</columns>
</query>
</display>
</displays>