Найти размер базы данных в Oracle - PullRequest
17 голосов
/ 29 ноября 2010

У меня есть база данных с именем «My_Enterprise_Data». Мне нужно найти размер, который он занимает на диске.

Как мне это выяснить?

Правильно ли выполнен запрос SELECT sum(bytes)/1024/1024 AS "Size in MB" FROM user_segments для My_Enterprise_Data?

Ответы [ 4 ]

21 голосов
/ 29 ноября 2010

Следующее покажет вам файлы данных, используемые oracle:

select TABLESPACE_NAME "Tablspace",  
 FILE_NAME "Filename",  
 BYTES/1024/1024 "Size MB", 
 MAXBYTES/1024/1024 "Maximum Size MB", 
 AUTOEXTENSIBLE "Autoextensible"
from SYS.DBA_DATA_FILES

Затем вы можете найти табличное пространство, используемое схемой My_Enterprise_Data

5 голосов
/ 09 мая 2014

База данных oracle состоит из файлов данных, файлов журнала повторов, файлов управления, временных файлов. Размер базы данных фактически означает общий размер всех этих файлов.

select 
( select sum(bytes)/1024/1024/1024 data_size from dba_data_files ) +
( select nvl(sum(bytes),0)/1024/1024/1024 temp_size from dba_temp_files ) +
( select sum(bytes)/1024/1024/1024 redo_size from sys.v_$log ) +
( select sum(BLOCK_SIZE*FILE_SIZE_BLKS)/1024/1024/1024 controlfile_size from v$controlfile) "Size in GB"
from
dual
3 голосов
/ 25 января 2016
SELECT a.data_size + b.temp_size + c.redo_size + d.controlfile_size 
"total_size in GB" 
FROM (SELECT SUM (bytes) / 1024 / 1024/1024 data_size FROM dba_data_files) a, 
(SELECT NVL (SUM (bytes), 0) / 1024 / 1024/1024 temp_size 
FROM dba_temp_files) b, 
(SELECT SUM (bytes) / 1024 / 1024/1024 redo_size FROM sys.v_$log) c, 
(SELECT SUM (BLOCK_SIZE * FILE_SIZE_BLKS) / 1024 / 1024/1024 
controlfile_size 
FROM v$controlfile) d;
2 голосов
/ 14 декабря 2015

Существует два способа вычисления размера базы данных в Oracle,

один со стороны ОС, а другой по логину в базу данных,

Вы также можете увидеть здесь детали процедуры для обоих способов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...