Tabellengrößen ermitteln

Sie möchte die Größe einer Tabelle oder auch aller Tabellen eines Datenbankschemas ermitteln? Das folgende SQL-Skript zeigt Anzahl belegter Datenbankblöcke sowie die Tabellengröße an:

ORACLE SQL: Tabellengröße ermitteln
PROMPT Bitte geben Sie den Schema-Namen ein. 
ACCEPT schema PROMPT  'Für alle Schemata einfach Enter druecken: '
SET LINES          140
SET TRIMOUT        ON 
SET TRIMSPOOL      ON
SET VERIFY         OFF
 
COLUMN OWNER       FORMAT A30
COLUMN TABLE       FORMAT A30
COLUMN TABLESPACE  FORMAT A20
 
SELECT "OWNER"
,      "TABLE"
,      "DB Blocks"
,      ROUND(DECODE(SIGN("Size"/1048576 -1 )
              , -1 , DECODE(SIGN("Size"/1024 -1)
                     , -1, "Size"
                     ,  "Size"/1024)
             , "Size"/1048576) ,2) "SIZE"
,       DECODE(SIGN("Size"/1048576 -1 )
              , -1, DECODE(SIGN("Size"/1024 -1)
                    ,-1 ,' Byte'
                    , ' Kb')
              , ' Mb') " "
,      "TABLESPACE"
FROM
(SELECT owner "OWNER"
 , segment_name "TABLE"
 , SUM(BYTES)   "Size"
 , blocks "DB Blocks"
 , tablespace_name "TABLESPACE"
 FROM DBA_SEGMENTS
 WHERE segment_type = 'TABLE'
  AND DECODE('&&schema', NULL,'X', OWNER) =
  DECODE('&&schema',NULL,'X',UPPER('&&schema'))
  AND OWNER NOT IN ('SYS' , 'SYSTEM')
 GROUP BY owner, segment_name, tablespace_name, blocks
 ORDER BY owner, segment_name) ;