From 8f3c4f0a1a52e36e5c1efc1090e1e650291c5d7c Mon Sep 17 00:00:00 2001 From: Yacine31 Date: Wed, 22 Nov 2023 15:43:36 +0100 Subject: [PATCH] Update 20_tbs_details.sql --- sql/20_tbs_details.sql | 125 +++++++++++++++++++++++++++++++---------- 1 file changed, 94 insertions(+), 31 deletions(-) diff --git a/sql/20_tbs_details.sql b/sql/20_tbs_details.sql index ca55bbb..391fef2 100644 --- a/sql/20_tbs_details.sql +++ b/sql/20_tbs_details.sql @@ -4,35 +4,98 @@ COL PCT_OCCUPATION_THEORIQUE FORMAT 990.00 HEAD "% Occup" COL TAILLE_MIB FORMAT 99999990.00 HEAD "Taille MB" COL TAILLE_MAX_MIB FORMAT 99999990.00 HEAD "Taille max MB" COL TAILLE_OCCUPEE_MIB FORMAT 99999990.00 HEAD "Espace occupé MiB" -WITH TS_FREE_SPACE AS -(select tablespace_name, file_id, sum(bytes) FREE_O from dba_free_space group by tablespace_name, file_id -), TEMP_ALLOC AS -(select tablespace_name, file_id, sum(bytes) USED_O from v$temp_extent_map group by tablespace_name, file_id -) -SELECT - TABLESPACE_NAME, - SUM(TAILLE_MIB) TAILLE_MIB, - SUM(TAILLE_MAX_MIB) TAILLE_MAX_MIB, - SUM(TAILLE_OCCUPEE_MIB) TAILLE_OCCUPEE_MIB, - ROUND(SUM(TAILLE_OCCUPEE_MIB)*100/SUM(GREATEST(TAILLE_MAX_MIB,TAILLE_MIB)),2) PCT_OCCUPATION_THEORIQUE -FROM -( - SELECT D.FILE_NAME, D.TABLESPACE_NAME, D.BYTES/1024/1024 TAILLE_MIB, DECODE(D.AUTOEXTENSIBLE,'NO',D.BYTES,D.MAXBYTES)/1024/1024 TAILLE_MAX_MIB, - (D.BYTES-FO.FREE_O)/1024/1024 TAILLE_OCCUPEE_MIB - FROM - DBA_DATA_FILES D, TS_FREE_SPACE FO - WHERE - D.TABLESPACE_NAME=FO.TABLESPACE_NAME - AND D.FILE_ID=FO.FILE_ID - UNION ALL - SELECT T.FILE_NAME, T.TABLESPACE_NAME, T.BYTES/1024/1024 TAILLE_MIB, DECODE(T.AUTOEXTENSIBLE,'NO',T.BYTES,T.MAXBYTES)/1024/1024 TAILLE_MAX_MIB, - (TA.USED_O)/1024/1024 TAILLE_OCCUPEE_MIB - FROM - DBA_TEMP_FILES T, TEMP_ALLOC TA - WHERE - T.TABLESPACE_NAME=TA.TABLESPACE_NAME - AND T.FILE_ID=TA.FILE_ID -) -GROUP BY TABLESPACE_NAME -ORDER BY TABLESPACE_NAME; +-- WITH TS_FREE_SPACE AS +-- (select tablespace_name, file_id, sum(bytes) FREE_O from dba_free_space group by tablespace_name, file_id +-- ), TEMP_ALLOC AS +-- (select tablespace_name, file_id, sum(bytes) USED_O from v$temp_extent_map group by tablespace_name, file_id +-- ) +-- SELECT +-- TABLESPACE_NAME, +-- SUM(TAILLE_MIB) TAILLE_MIB, +-- SUM(TAILLE_MAX_MIB) TAILLE_MAX_MIB, +-- SUM(TAILLE_OCCUPEE_MIB) TAILLE_OCCUPEE_MIB, +-- ROUND(SUM(TAILLE_OCCUPEE_MIB)*100/SUM(GREATEST(TAILLE_MAX_MIB,TAILLE_MIB)),2) PCT_OCCUPATION_THEORIQUE +-- FROM +-- ( +-- SELECT D.FILE_NAME, D.TABLESPACE_NAME, D.BYTES/1024/1024 TAILLE_MIB, DECODE(D.AUTOEXTENSIBLE,'NO',D.BYTES,D.MAXBYTES)/1024/1024 TAILLE_MAX_MIB, +-- (D.BYTES-FO.FREE_O)/1024/1024 TAILLE_OCCUPEE_MIB +-- FROM +-- DBA_DATA_FILES D, TS_FREE_SPACE FO +-- WHERE +-- D.TABLESPACE_NAME=FO.TABLESPACE_NAME +-- AND D.FILE_ID=FO.FILE_ID +-- UNION ALL +-- SELECT T.FILE_NAME, T.TABLESPACE_NAME, T.BYTES/1024/1024 TAILLE_MIB, DECODE(T.AUTOEXTENSIBLE,'NO',T.BYTES,T.MAXBYTES)/1024/1024 TAILLE_MAX_MIB, +-- (TA.USED_O)/1024/1024 TAILLE_OCCUPEE_MIB +-- FROM +-- DBA_TEMP_FILES T, TEMP_ALLOC TA +-- WHERE +-- T.TABLESPACE_NAME=TA.TABLESPACE_NAME +-- AND T.FILE_ID=TA.FILE_ID +-- ) +-- GROUP BY TABLESPACE_NAME +-- ORDER BY TABLESPACE_NAME;-- +COL TABLESPACE_NAME FORMAT A20 HEAD "Tablespace" +COL Allocated FORMAT 99999990.00 HEAD "Allocated MB" +COL Used FORMAT 99999990.00 HEAD "Used MB" +COL Free FORMAT 99999990.00 HEAD "Freed MB" +COL Max FORMAT 99999990.00 HEAD "MaxSize MB" +COL Pct_Used FORMAT 990.00 HEAD "% Used" + +select + a.tablespace_name, + a.bytes_alloc alloc, + a.bytes_alloc - nvl(b.bytes_free, 0) used, + nvl(b.bytes_free, 0) free, + maxbytes Max, + (a.bytes_alloc - nvl(b.bytes_free, 0)) / maxbytes * 100 Pct_Used +from + ( + select + f.tablespace_name, + sum(f.bytes) bytes_alloc, + sum(decode(f.autoextensible, 'YES', f.maxbytes, 'NO', f.bytes)) maxbytes + from + dba_data_files f + group by + tablespace_name + ) a, + ( + select + f.tablespace_name, + sum(f.bytes) bytes_free + from + dba_free_space f + group by + tablespace_name + ) b, + dba_tablespaces t +where + a.tablespace_name = b.tablespace_name (+) + and b.tablespace_name = t.tablespace_name +union all +select + h.tablespace_name, + sum(h.bytes_free + h.bytes_used) alloc, + sum(nvl(p.bytes_used, 0)) used, + sum((h.bytes_free + h.bytes_used) - nvl(p.bytes_used, 0)) free, + sum(f.maxbytes) max, + (sum(h.bytes_free + h.bytes_used) - sum((h.bytes_free + h.bytes_used) - nvl(p.bytes_used, 0))) / sum(f.maxbytes) "Pct_Used%Max" +from + sys.v_$temp_space_header h, + sys.v_$temp_extent_pool p, + dba_temp_files f, + dba_tablespaces dt +where + p.file_id(+) = h.file_id + and p.tablespace_name(+) = h.tablespace_name + and f.file_id = h.file_id + and f.tablespace_name = h.tablespace_name + and h.tablespace_name = dt.tablespace_name +group by + h.tablespace_name, + dt.contents +order by + 1 +;