From 382f68d27d4e8a9130041c2fce48b5478a48d755 Mon Sep 17 00:00:00 2001 From: Yacine31 Date: Thu, 9 Nov 2023 01:50:13 +0100 Subject: [PATCH] Update 11_get_db_size.sql --- Daily/sql/11_get_db_size.sql | 87 +++++++++++++++++++++++++++++------- 1 file changed, 70 insertions(+), 17 deletions(-) diff --git a/Daily/sql/11_get_db_size.sql b/Daily/sql/11_get_db_size.sql index c032859..8a8ea44 100644 --- a/Daily/sql/11_get_db_size.sql +++ b/Daily/sql/11_get_db_size.sql @@ -1,19 +1,72 @@ prompt

Database Size

-set head off -col "Database Size" format 99,999.99 -select 'Database Size (Go) : ' || ( - SELECT ROUND(SUM(TAILLE_BYTES)/1024/1024/1024,2) "Database Size" FROM - ( - SELECT SUM(FILE_SIZE_BLKS*BLOCK_SIZE) TAILLE_BYTES FROM V$CONTROLFILE - UNION ALL - SELECT SUM(BYTES) FROM V$TEMPFILE - UNION ALL - SELECT SUM(BYTES) FROM V$DATAFILE - UNION ALL - SELECT SUM(MEMBERS*BYTES) FROM V$LOG - UNION ALL - SELECT BYTES FROM V$STANDBY_LOG SL, V$LOGFILE LF WHERE SL.GROUP# = LF.GROUP# - ) - ) -from dual; +-- set head off +-- col "Database Size" format 99,999.99 +-- select 'Database Size (Go) : ' || ( +-- SELECT ROUND(SUM(TAILLE_BYTES)/1024/1024/1024,2) "Database Size" FROM +-- ( +-- SELECT SUM(FILE_SIZE_BLKS*BLOCK_SIZE) TAILLE_BYTES FROM V$CONTROLFILE +-- UNION ALL +-- SELECT SUM(BYTES) FROM V$TEMPFILE +-- UNION ALL +-- SELECT SUM(BYTES) FROM V$DATAFILE +-- UNION ALL +-- SELECT SUM(MEMBERS*BYTES) FROM V$LOG +-- UNION ALL +-- SELECT BYTES FROM V$STANDBY_LOG SL, V$LOGFILE LF WHERE SL.GROUP# = LF.GROUP# +-- ) +-- ) +-- 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 \ No newline at end of file