Апр 152011
 

Узнать общий размер табличного пространства можно, сложив размеры всех составляющих его файлов данных. Эта информация есть в представлении DBA_DATA_FILES.
Объём доступного свободного места в каждом tablespace можно получить из DBA_FREE_SPACE.
Теперь объединим запросы из этих представлений в один и добавим округление, подсчёт процентов свободного места, etc.:

SELECT  free.tablespace_name TABLESPACE, 
    ROUND(files.bytes / 1073741824, 2) gb_total,
    ROUND((files.bytes - free.bytes)  / 1073741824, 2) gb_used,      
    ROUND(free.bytes  / files.bytes * 100) || '%' "%FREE" 
FROM
  (
    SELECT tablespace_name, SUM(bytes) bytes FROM dba_free_space
    GROUP BY tablespace_name
  ) free,
  (
    SELECT tablespace_name, SUM(bytes) bytes FROM dba_data_files 
    GROUP BY tablespace_name
  ) files
WHERE 
  free.tablespace_name = files.tablespace_name;

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre lang="" line="" escaped="" cssfile="">

(обязательно)

(обязательно)