- Este tópico contém 3 respostas, 4 vozes e foi atualizado pela última vez 11 anos, 5 meses atrás por Victor Armbrust.
-
AutorPosts
-
19 de junho de 2013 às 12:53 am #105582airoospParticipante
Boa tarde,
Estou pesquisando informações sobre como saber o tamanho aproximado da base de dados. Vi que alguns levam em consideração os datafiles + tempfiles + controlfiles + redo + archives. Em outros sites vi que as consultas são feitas usando as views que trazem informações sobre os segmentos.
Como os colegas fazem para obter esse tipo de informação?
No site http://samadhandba.wordpress.com/catego … y-scripts/ encontrei o scritp abaixo:
select ROUND(
(a.data_size + b.temp_size +c.redo_size + d.cf_size +e.bct_size)/1024/1024/1024) “total_GB_size”
from
( select SUM(bytes) data_size from v$datafile) a,
( select NVL(sum(bytes),0) temp_size from v$tempfile) b,
( select SUM(bytes) redo_size from v$log) c,
( select SUM(block_size*file_size_blks) cf_size from v$controlfile) d,
( select NVL(bytes,0) bct_size from v$block_change_tracking) e
select a.data_size+b.temp_size+c.redo_size “total_size”
from ( select sum(bytes)/1024/1024 data_size
from dba_data_files )a,
( select nvl(sum(bytes),0)/1024/1024 temp_size
from dba_temp_files ) b,
( select sum(bytes)/1024/1024 redo_size
from sys.v_$log ) cEm http://www.dba-village.com/village/dvp_ … dIdA=10432
encontrei:
col “FILE NAME” for a40
col “Used MB” for 99,999,999
col “Free MB” for 99,999,999
col “Total MB” for 99,999,999select dbt.file_name “File Name” ,
(df.totalspace – fs.freespace) “Used MB”,
fs.freespace “Free MB”,
df.totalspace “Total MB”,
round(100 * (fs.freespace / df.totalspace)) “Pct. Free”
from
(select tablespace_name,file_id,
round(sum(bytes) / 1048576) TotalSpace
from dba_data_files
group by tablespace_name,file_id) df,
(select tablespace_name,file_id,
round(sum(bytes) / 1048576) FreeSpace
from dba_free_space
group by tablespace_name,file_id) fs , dba_data_files dbt
where df.file_id = fs.file_id and df.file_id = dbt.file_idSe alguém tiver mais informações sobre o assunto agradeço.
Obrigado.
Airton
19 de junho de 2013 às 1:03 am #105583Douglas Paiva de SousaParticipante@airoosp
Eu normalmente uso esse aqui, serve para saber o tamanho real do banco de dados dividido por usuários, descontando temp files, undo e redo, na verdade é computa somente o tamanho dos segmentos. Mas se você quiser saber o tamanho total faça um union das views v$datafile, v$tempfile
e v$logfile pela coluna bytes.select owner, round(sum(bytes)/1024/1024,2) as "Size" from dba_Segments
group by owner
order by 2 desc
/21 de junho de 2013 às 10:08 pm #105595Fábio PradoParticipanteSó para complementar…
DBA_SEGMENTS permite ver o tamanho real dos dados, ou seja, o tamanho lógico, aquilo que os dados realmente representam!
DBA_DATAFILES permite ver o tamanho físico dos dados, ou seja, o tamanho que eles ocupam em disco, que normalmente é maior!
[]s
25 de junho de 2013 às 10:23 am #105603Victor ArmbrustMestreSomatória de tudo abaixo = Tamanho Total do Database
select (BLOCK_SIZE*FILE_SIZE_BLKS)/1024/1024/1024 bytes from v$controlfile
union
select sum(bytes)/1024/1024/1024 from v$tempfile
union
select sum(bytes)/1024/1024/1024 from v$log
union
select sum(bytes)/1024/1024/1024 from v$datafile;
Se tiver standby logs some também o bytes da v$standby_log
P.S: Não estamos somando archive logs, somente datafiles, controlfiles, redolog files e tempfiles.
abs
Victor -
AutorPosts
- Você deve fazer login para responder a este tópico.