Update 11_get_db_size.sql
This commit is contained in:
@@ -1,19 +1,72 @@
|
|||||||
prompt <h2>Database Size </h2>
|
prompt <h2>Database Size </h2>
|
||||||
set head off
|
-- set head off
|
||||||
col "Database Size" format 99,999.99
|
-- col "Database Size" format 99,999.99
|
||||||
select 'Database Size (Go) : ' || (
|
-- select 'Database Size (Go) : ' || (
|
||||||
SELECT ROUND(SUM(TAILLE_BYTES)/1024/1024/1024,2) "Database Size" FROM
|
-- SELECT ROUND(SUM(TAILLE_BYTES)/1024/1024/1024,2) "Database Size" FROM
|
||||||
(
|
-- (
|
||||||
SELECT SUM(FILE_SIZE_BLKS*BLOCK_SIZE) TAILLE_BYTES FROM V$CONTROLFILE
|
-- SELECT SUM(FILE_SIZE_BLKS*BLOCK_SIZE) TAILLE_BYTES FROM V$CONTROLFILE
|
||||||
UNION ALL
|
-- UNION ALL
|
||||||
SELECT SUM(BYTES) FROM V$TEMPFILE
|
-- SELECT SUM(BYTES) FROM V$TEMPFILE
|
||||||
UNION ALL
|
-- UNION ALL
|
||||||
SELECT SUM(BYTES) FROM V$DATAFILE
|
-- SELECT SUM(BYTES) FROM V$DATAFILE
|
||||||
UNION ALL
|
-- UNION ALL
|
||||||
SELECT SUM(MEMBERS*BYTES) FROM V$LOG
|
-- SELECT SUM(MEMBERS*BYTES) FROM V$LOG
|
||||||
UNION ALL
|
-- UNION ALL
|
||||||
SELECT BYTES FROM V$STANDBY_LOG SL, V$LOGFILE LF WHERE SL.GROUP# = LF.GROUP#
|
-- SELECT BYTES FROM V$STANDBY_LOG SL, V$LOGFILE LF WHERE SL.GROUP# = LF.GROUP#
|
||||||
)
|
-- )
|
||||||
)
|
-- )
|
||||||
from dual;
|
-- from dual;
|
||||||
|
|
||||||
|
WITH
|
||||||
|
sizes AS (
|
||||||
|
SELECT /*+ MATERIALIZE NO_MERGE */ /* 1f.60 */
|
||||||
|
'Data' file_type,
|
||||||
|
SUM(bytes) bytes
|
||||||
|
FROM v$datafile
|
||||||
|
UNION ALL
|
||||||
|
SELECT 'Temp' file_type,
|
||||||
|
SUM(bytes) bytes
|
||||||
|
FROM v$tempfile
|
||||||
|
UNION ALL
|
||||||
|
SELECT 'Log' file_type,
|
||||||
|
SUM(bytes) * MAX(members) bytes
|
||||||
|
FROM v$log
|
||||||
|
UNION ALL
|
||||||
|
SELECT 'Control' file_type,
|
||||||
|
SUM(block_size * file_size_blks) bytes
|
||||||
|
FROM v$controlfile
|
||||||
|
),
|
||||||
|
dbsize AS (
|
||||||
|
SELECT /*+ MATERIALIZE NO_MERGE */ /* 1f.60 */
|
||||||
|
'Total' file_type,
|
||||||
|
SUM(bytes) bytes
|
||||||
|
FROM sizes
|
||||||
|
)
|
||||||
|
SELECT d.dbid,
|
||||||
|
d.name db_name,
|
||||||
|
s.file_type,
|
||||||
|
s.bytes,
|
||||||
|
CASE
|
||||||
|
WHEN s.bytes > POWER(10,15) THEN ROUND(s.bytes/POWER(10,15),3)||' P'
|
||||||
|
WHEN s.bytes > POWER(10,12) THEN ROUND(s.bytes/POWER(10,12),3)||' T'
|
||||||
|
WHEN s.bytes > POWER(10,9) THEN ROUND(s.bytes/POWER(10,9),3)||' G'
|
||||||
|
WHEN s.bytes > POWER(10,6) THEN ROUND(s.bytes/POWER(10,6),3)||' M'
|
||||||
|
WHEN s.bytes > POWER(10,3) THEN ROUND(s.bytes/POWER(10,3),3)||' K'
|
||||||
|
WHEN s.bytes > 0 THEN s.bytes||' B' END approx
|
||||||
|
FROM v$database d,
|
||||||
|
sizes s
|
||||||
|
UNION ALL
|
||||||
|
SELECT d.dbid,
|
||||||
|
d.name db_name,
|
||||||
|
s.file_type,
|
||||||
|
s.bytes,
|
||||||
|
CASE
|
||||||
|
WHEN s.bytes > POWER(10,15) THEN ROUND(s.bytes/POWER(10,15),3)||' P'
|
||||||
|
WHEN s.bytes > POWER(10,12) THEN ROUND(s.bytes/POWER(10,12),3)||' T'
|
||||||
|
WHEN s.bytes > POWER(10,9) THEN ROUND(s.bytes/POWER(10,9),3)||' G'
|
||||||
|
WHEN s.bytes > POWER(10,6) THEN ROUND(s.bytes/POWER(10,6),3)||' M'
|
||||||
|
WHEN s.bytes > POWER(10,3) THEN ROUND(s.bytes/POWER(10,3),3)||' K'
|
||||||
|
WHEN s.bytes > 0 THEN s.bytes||' B' END approx
|
||||||
|
FROM v$database d,
|
||||||
|
dbsize s;
|
||||||
exit
|
exit
|
||||||
Reference in New Issue
Block a user