Como listar as maiores tabelas ou objetos Oracle
Compartilhe :

Como verificar as maiores tabelas ou objetos do Oracle

Como a view DBA_SEGMENTS pode lhe ajudar a descobrir as maiores tabelas ou objetos Oracle

Como um administrador de banco de dados ou DBA, você certamente deve ficar atento as maiores tabelas ou objetos do banco de dados.

O tamanho dos objetos Oracle impactam principalmente em questões da administração de um banco de dados como: tempo para realização de backup, performance, crescimento, reconstrução de índice, etc.

A View de um banco de dados Oracle que descreve o armazenamento alocado para todos os segmentos é a DBA_SEGMENTS.

Como listar as maiores tabelas ou objetos Oracle
Saiba como listar as maiores tabelas ou objetos Oracle

Neste tutorial veremos como utilizar a view DBA_SEGMENTS com a finalidade de verificar os maiores objetos ou tabelas de um banco de dados Oracle.

Abaixo segue um exemplo de como podemos listar os 10 maiores objetos de um banco de dados Oracle

Consulta para verificar as 10 maiores objetos do Oracle

A query abaixo traz os 10 maiores objetos Oracle com o nome do segmento, tipo, nome da Tablespace e o tamanho em Gigabytes

column SEGMENT_NAME format a30
column SEGMENT_TYPE format a15
column TABLESPACE_NAME format a30
SELECT * FROM
 (select
 SEGMENT_NAME,
 SEGMENT_TYPE,
 BYTES/1024/1024/1024 GB,
 TABLESPACE_NAME
 from
 dba_segments
 order by 3 desc ) WHERE
 ROWNUM <= 10;

Exemplo resultado de consulta para verificar os 10 maiores objetos do banco de dados Oracle

Note que no exemplo acima a consulta retornará os maiores objetos independente deles serem do tipo tabela (TABLE)

Isso ocorre porque não fizemos um filtro pelo tipo de segmento (Coluna SEGMENT_TYPE da view DBA_SEGMENTS).

É possível efetuar uma consulta especificando o tipo de segmento ( SEGMENT_TYPE).

Exemplo:
INDEX PARTITION, TABLE PARTITION, TABLE, CLUSTER, INDEX, ROLLBACK, DEFERRED ROLLBACK, TEMPORARY, CACHE, LOBSEGMENT e LOBINDEX

Ou seja, se quisermos saber quais os maiores índices de um banco de dados Oracle, basta especificar o segment_type = ‘INDEX’

column SEGMENT_NAME format a30
column SEGMENT_TYPE format a15 
column TABLESPACE_NAME format a30 
SELECT * FROM (select SEGMENT_NAME, SEGMENT_TYPE, BYTES/1024/1024/1024 GB, TABLESPACE_NAME from dba_segments 
where segment_type = 'INDEX' order by 3 desc ) WHERE ROWNUM <= 10;

Descobrindo as maiores tabelas Oracle

Para listar as maiores tabelas Oracle, basta utilizar a query que mostramos no exemplo anterior, alterando o filtro do tipo de segmento ( segment_type = ‘TABLE’ )

Desta forma, retornara as 10 maiores tabelas do Oracle juntamente com o proprietário (OWNER) do segmento.

column OWNER format a30
column SEGMENT_NAME format a30
select * from 
(select owner, segment_name, trunc(sum(bytes)/1024/1024/1024,2) "SIZE GB"
      from dba_segments
      where segment_type = 'TABLE'
      group by segment_name, owner
      order by 3 desc)
      where rownum <= 10;
Exemplo de resultado consulta para verificar os 10 maiores Tabelas do banco de dados Oracle . Segment_type = ‘TABLE’

Obrigado

Espero que este post tenha sido útil e lhe ajudado a entender um pouco mais sobre o banco de dados Oracle.

Em nossa seção de Oracle, você confere outras dicas sobre este banco de dados.

Se você gostou, compartilhe estas dicas com um amigo ou participe de nossas redes sociais.

Caso queira nos incentivar a criar mais conteúdos como este, prestigie nossos anunciantes.

Um Grande Abraço e até a próxima dica!


Compartilhe :

Posts Similares