Найти размер базы данных в Oracle

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

Как мне это узнать?

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

Ответ 1

Ниже будут показаны файлы данных, используемые 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​​p >

Ответ 2

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

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

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;