Informações Gerais do Tablespace

No Oracle, os tablespace são áreas de armazenamento físico onde os dados do banco de dados são armazenados. Para consultar informações sobre os tablespaces e seu uso de espaço, você pode utilizar várias visões do dicionário de dados do Oracle. As mais comuns são DBA_TABLESPACES, DBA_DATA_FILES, e DBA_FREE_SPACE. Vamos examinar como você pode usar essas visões para obter informações úteis sobre os tablespaces:

1. Consultar Informações Gerais do Tablespace

Você pode usar a visão DBA_TABLESPACES para obter informações gerais sobre cada tablespace, como nome, tipo de conteúdo, status, etc.

SELECT tablespace_name, contents, status, logging 
FROM dba_tablespaces;

2. Consultar o Tamanho e o Uso dos Tablespaces

Para obter informações mais detalhadas sobre o tamanho dos tablespaces e o espaço usado, você pode combinar informações de DBA_DATA_FILES e DBA_FREE_SPACE.

SELECT df.tablespace_name,
       ROUND(SUM(df.bytes) / 1024 / 1024, 2) AS Total_MB,
       ROUND(SUM(df.bytes) / 1024 / 1024 - SUM(fs.bytes) / 1024 / 1024, 2) AS Used_MB,
       ROUND(SUM(fs.bytes) / 1024 / 1024, 2) AS Free_MB
FROM dba_data_files df
LEFT JOIN dba_free_space fs ON df.file_id = fs.file_id
GROUP BY df.tablespace_name;

Nesta consulta:

  • Total_MB: Mostra o espaço total alocado para cada tablespace.
  • Used_MB: Mostra o espaço usado em cada tablespace.
  • Free_MB: Mostra o espaço livre disponível em cada tablespace.

3. Verificar a Utilização Percentual de Cada Tablespace

Você pode também calcular a porcentagem de uso de cada tablespace para entender melhor quão cheios eles estão.

SELECT df.tablespace_name,
       ROUND(SUM(df.bytes) / 1024 / 1024, 2) AS Total_MB,
       ROUND(SUM(df.bytes) / 1024 / 1024 - SUM(nvl(fs.bytes, 0)) / 1024 / 1024, 2) AS Used_MB,
       ROUND((SUM(df.bytes) - SUM(nvl(fs.bytes, 0))) / SUM(df.bytes) * 100, 2) AS Pct_Used
FROM dba_data_files df
LEFT JOIN dba_free_space fs ON df.tablespace_name = fs.tablespace_name
GROUP BY df.tablespace_name;

4. Considerações Adicionais

  • Privilégios Necessários: Para executar essas consultas, você precisa ter os privilégios adequados. Geralmente, as visões DBA_* requerem privilégios de administrador (DBA).
  • Atualizações e Manutenção: O espaço em disco e a configuração dos tablespaces podem mudar frequentemente, especialmente em ambientes de produção. É importante monitorar esses espaços regularmente para evitar problemas de espaço em disco.
  • Melhorias: Você pode considerar a implementação de alertas automatizados ou scripts que monitoram regularmente o uso do espaço e notificam os administradores quando os tablespaces estão ficando cheios.

Essas consultas são essenciais para a administração de banco de dados em Oracle, ajudando a garantir que haja espaço suficiente para as operações do banco de dados e a manter um bom desempenho do sistema.