Pular para o conteúdo

Compreendendo o Oracle Database: Um guia detalhado para Data Dictionary e Dynamic Performance Views

Data Dictionary e Dynamic Performance Views: Explorando o Coração do Oracle Database

O Data Dictionary e as Dynamic Performance Views são como o coração e o sistema circulatório de um banco de dados Oracle. Eles armazenam e transmitem informações vitais sobre todos os objetos, usuários e a própria estrutura do banco de dados. Se você já se perguntou como o Oracle sabe quem tem permissão para acessar determinado objeto ou como ele monitora o desempenho em tempo real, é aqui que encontramos essas respostas.

Ao longo deste artigo, exploraremos como essas duas peças funcionam, trazendo exemplos práticos e capturas de tela para ilustrar os resultados.

O Que é o Data Dictionary?

O Data Dictionary no Oracle Database é um conjunto de tabelas e views que armazenam informações sobre o banco de dados em si. Ele é automaticamente criado e mantido pelo Oracle assim que o banco é criado. Não se trata de algo que o administrador define manualmente, mas sim algo intrínseco ao funcionamento do Oracle. É como se o banco de dados estivesse constantemente escrevendo suas “memórias” e você pudesse consultá-las quando necessário.

Suponha que você queira ver todas as tabelas que pertencem ao usuário atual. Para isso, podemos usar a view `USER_TABLES`:

SQL
SELECT table_name FROM user_tables;

image 58
SELECT table_name FROM user_tables SYS

Este é o resultado resumido estando conectado como o usuário SYS, resumido pois os objetos do SYS relata 1539 linhas, ou seja são muitos objetos associados a este usuário.

image 60
SELECT table_name FROM user_tables USR_BANGUELA

Este é outro usuário do meu laboratório no qual tem menos objetos associados a ele apenas 4 pouca coisa comparado ao usuário SYS.

Menos ainda é o usuário:

image 61
SELECT table_name FROM user_tables  USR_AGUA

Com apenas 1 objeto vinculado a ele. Todo este esforço em mostrar usuários diferentes é para demonstrar o uso do dicionário de dados e seus usuários.

Esse comando retorna todas as tabelas criadas pelo usuário atual. Se você precisar ver tabelas de outros usuários, pode utilizar a view `ALL_TABLES` e especificar o proprietário:

SQL
SELECT table_name
FROM all_tables
WHERE owner = 'NOME_DO_USUARIO';

image 62
SELECT table_name FROM all_tables WHERE owner =

A beleza do Data Dictionary está no fato de que todas essas views, como `USER_TABLES`, `ALL_TABLES` e até mesmo `DBA_TABLES`, referenciam as mesmas tabelas base por trás. Portanto, cada prefixo (`DBA`, `ALL`, `USER`) fornece diferentes níveis de acesso às informações — uma abordagem flexível que facilita o trabalho de DBAs e desenvolvedores.

Imagine que o Data Dictionary é como o catálogo de uma biblioteca gigante. A view `DBA_TABLES` é o equivalente ao catálogo completo que somente os bibliotecários (DBAs) podem acessar, enquanto `USER_TABLES` é como uma seção de “favoritos” que cada leitor (usuário) pode ver.

O Data Dictionary é criado e mantido automaticamente pelo Oracle — ou seja, o DBA não precisa se preocupar em criá-lo manualmente.

Dynamic Performance Views: Monitoramento em Tempo Real

Se o Data Dictionary é o catálogo estático do Oracle, as Dynamic Performance Views são os sensores em tempo real que monitoram o sistema. Elas têm o prefixo `V$` e oferecem uma visão atualizada do que está acontecendo no banco de dados. Por exemplo, se você quiser ver todas as sessões ativas no momento, a view V$SESSION é o lugar para ir.

Exemplo: Monitorando Sessões Ativas

image 63
SELECT sid, serial#, username, status FROM v$session
SQL
SELECT sid, serial#, username, status
FROM v$session
WHERE status = 'ACTIVE';

A saída desse comando mostra as sessões que estão ativas no momento (adicionar captura de tela). Essas views são chamadas de views dinâmicas porque os dados que elas exibem estão mudando constantemente à medida que o banco de dados é utilizado.

Imagine um aeroporto. O Data Dictionary seria como o plano mestre do aeroporto, contendo detalhes sobre todos os terminais, portões e a estrutura física. Já as Dynamic Performance Views são como as telas de monitoramento que mostram, em tempo real, os voos que estão chegando, partindo ou atrasados. Sem essas informações dinâmicas, seria impossível gerenciar o tráfego aéreo com eficiência — e o mesmo vale para o Oracle!

Quem é o Dono do Data Dictionary?

O Data Dictionary é propriedade do usuário SYS, que detém os privilégios mais elevados no Oracle Database. O usuário SYSTEM, por sua vez, também possui acesso total a essas informações, mas SYS é o verdadeiro “administrador” dos dados.

image 64
SELECT owner, view_name FROM dba_views WHERE view_name = ‘USER_TABLES’
SQL
SELECT owner, view_name
FROM dba_views
WHERE view_name = 'USER_TABLES';

Aqui, você verá que o proprietário da tabela USER_TABLES é o SYS. Isso confirma que o Oracle centraliza o controle desses dados essenciais em suas mãos mais privilegiadas.

Diferença Entre Base Tables e Views

As TABELAS BASE no Data Dictionary não são diretamente acessíveis para consulta. O Oracle oferece apenas as views sobre essas tabelas para proteger a integridade dos dados. As views, como ‘DBA_TABLES’, ‘USER_TABLES’, e ‘ALL_TABLES’, são o meio de acessar os metadados do banco.

Exemplo: Tentativa de Consulta Direta às Base Tables

Se você tentar consultar diretamente uma tabela base, por exemplo:

image 65
SELECT * FROM sys tab$;

Isso resultaria em um erro de permissão, pois o Oracle não permite que os usuários consultem diretamente essas tabelas. Isso garante a integridade e o bom funcionamento do banco de dados, mantendo as operações seguras e consistentes.

Dados dos Usuários no Data Dictionary

O Data Dictionary também armazena informações críticas, como os nomes dos usuários cadastrados no banco de dados. Essas informações podem ser consultadas na view ‘DBA_USERS’:

image 66
SELECT username FROM dba_users;
SQL
SELECT username
FROM dba_users;

Aqui, você verá todos os usuários, incluindo DBAs e outros usuários comuns do sistema. Isso é fundamental para o gerenciamento de permissões e auditoria.

O Data Dictionary e as Dynamic Performance Views são ferramentas indispensáveis para qualquer DBA Oracle. Elas fornecem uma vasta gama de informações — desde a estrutura estática do banco de dados até o desempenho em tempo real. Entender como utilizá-las é crucial para garantir que seu ambiente Oracle esteja sempre funcionando da maneira mais eficiente e segura possível.

Ao longo deste artigo, exploramos como acessar e utilizar essas views, e vimos que os pontos levantados na pergunta inicial estão todos conectados à forma como o Oracle organiza, protege e oferece acesso às informações críticas do sistema.

Tercio Haring

Tercio Haring

Tércio Haring é pai do Max e um entusiasta incansável de TI. Sua paixão pelo próximo o levou a ser socorrista, sempre pronto para ajudar. No universo da tecnologia, seu objetivo vai além de simplesmente compartilhar conhecimento; ele busca manter sua mente conectada ao futuro e abraçar os desafios como oportunidades disfarçadas. Escreve com o objetivo de tornar o complexo mundo dos bancos de dados mais acessível e compreensível, sempre com um toque de humor para tornar a jornada mais leve e divertida. Se você procura insights valiosos, explicações claras e, claro, algumas boas risadas, Tércio é a pessoa certa para te guiar. Junte-se a ele para explorar, aprender e crescer nesse vasto e fascinante universo Oracle!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

plugins premium WordPress