Estou precisando de realizar um levantamento no Banco Oracle (não sou DBA), no seguinte cenário: Tenho a quantidade de linhas, após eliminação de algumas tabelas no banco de dados.
Este valor, chega à aproximadamente 50 milhões de registros que irei realizar o "expurgo".
Dúvida:
Por não ter acesso à DBA_SEGMENTS, consigo eu, fazer um cálculo, convertendo a quantidade de linhas em Bytes?
Então brother...
Eu, no meu conhecimento, acho meio impossível... Você transformar uma quantidade enorme em bytes... Qual o objetivo disso?
Normalmente eu se eu quero ver a quantidade de registros da tabela eu verifico daquela forma, e se eu quero ver o tamanho do segmento, eu vejo da outra forma ...
Sobre a conversão, até achei em um site, mas, como sou meio leigo, preferi agir de outra forma (escalar para uma equipe com permissão na DBA_SEGMENTS, mesmo que isso leve mais tempo do que eu mesmo fazer as queries).
Sobre o porquê do levantamento?
Estou num projeto de "expurgo" de base, ou seja, dezenas de objetos do banco vão sofrer Delete, outros, Trucate e por ai vai.
O que acontece é que o cliente deseja saber, em tamanho (storage), o quanto ele vai economizar.
Por isso que preciso das informações.
– Tamanho de Cada Tabela
SELECT owner, tablespace_name, segment_name,
round(sum(bytes/1024/1024),2) as Tamanho_MB –, extents as Num_extents
FROM dba_segments
WHERE owner = ‘SCOTT’
AND segment_type = ‘TABLE’
– AND segment_name like ‘DEPT%’
GROUP BY owner, tablespace_name, segment_name
– Tamanho das Tabelas Por Usuário
SELECT owner, round(sum(bytes/1024/1024),2) as Tamanho_MB –, extents as Num_extents
FROM dba_segments
GROUP BY owner
– Tamanho Total das Tabelas
SELECT round(sum(bytes/1024/1024),2) as Tamanho_MB –, extents as Num_extents
FROM dba_segments
Sobre a DBA_SEGMENTS realmente não me ajuda em muito, pelo fatos das permissões etc.
Eu gostaria de saber se existe algum SCRIPT, que eu consiga, por exemplo, através de 1 registro da bases de dados, calcular o teu tamanho, tendo este registro colunas number, varchar2, date etc.
Porque?
Preciso fazer uma limpeza parcial de uma tabela e, antes da limpeza, informar ao cliente o "ganho" que ele vai ter.
Brother,
Não teria como tu duplicar isso em algum lugar?
Assim você levantaria o tamanho atual ... depois disso deletando os dados, etc .. você levantaria o novo tamanho
Aí sim você fazia o cálculo, gráfico, porcentagem para o cliente mostrando ...
É o que daria pra ser feito, uma vez que tu não administra a base de dados.