Você está na página 1de 8

Data Dictionary and Dynamic Performance Views

Data dictionary é como é descrito, coletivamente, um conjunto central de


tabelas e views read-only de referência de cada Oracle Database.

As dynamic performance views são views especiais que são


continuamente atualizadas enquanto database está aberto e em utilização.

Data Dictionary
Uma importante parte de um Oracle Database é o dicionário de dados, que
é um conjunto de tabelas read only que fornecem metadados
administrativos sobre o database.

Um dicionário de dados contém as seguintes informações:

• As definições de cada objeto de schema no database, incluindo


valores default para colunas e informações de integridade como
constraints;
• O montante de espaço alocado e utilizado pelos objetos de schema;
• Os nomes dos usuários do Oracle Database, privilégios e roles
concedidas aos usuários e informações de auditoria relacionadas
aos usuários.

O dicionário de dados é a parte central do gerenciamento de dados para


cada Oracle Database. Por exemplo, o database executa as seguintes
ações:

• Acessos ao dicionário de dados para encontrar informações sobre


usuários, objetos de schema e estruturas de armazenamento;
• Modifica o dicionário de dados toda vez que algum comando DDL é
emitido.

O Oracle Database armazena os dados do dicionário de dados em tabelas,


assim como outro dado, e usuários podem consultar estes dados com
SQL’s. Por exemplo, usuários podem executar um SELECT para
determinar os privilégios dele, quais tabelas existem no schema dele,
quais colunas estão nestas tabelas, se índices são construídos nestas
colunas e assim por diante.

Conteúdos do Data Dictionary

O dicionário de dados consiste de tabelas base e views. Os seguintes


objetos são definidos como seguem:

• Tabelas base: armazenam informações sobre o database. Somente o


Oracle Database deveria escrever e ler estas tabelas. Usuários
raramente acessam tabelas base diretamente porque elas são
normalizadas e muitos dados são armazenados em formato
criptografado. As tabelas base são armazenadas no tablespace
SYSTEM e são os primeiros objetos a serem criados no database.

• Views: decodificam o dado da tabela base em informações úteis,


como nomes de usuários ou tabelas, utilizando joins e cláusulas
WHERE para simplificar a informação. Estas views contém os nomes
e descrições e todos os objetos no dicionário de dados. Algumas
views são acessíveis para todos os usuários do database, enquanto
que outras são destinadas para administradores somente.

Tipicamente, data dictionary views são agrupadas em conjuntos. Em


muitos casos, um conjunto consiste, normalmente, de três views contendo
informação similar e distinta de cada uma pelos seus prefixos:
O Oracle Database fornece uma view chamada DICTIONARY que contém
os nomes e descrições abreviadas de todas as views do dicionário de
dados.

SQL> SELECT * FROM DICTIONARY


ORDER BY TABLE_NAME;

Views com prefixo DBA_


Views com o prefixo DBA_ mostram todas as informações relevantes do
database inteiro. Views DBA_ são destinadas somente para
administradores.

SELECT OWNER, OBJECT_NAME, OBJECT_TYPE


FROM DBA_OBJECTS
ORDER BY OWNER, OBJECT_NAME;

Views com prefixo ALL_


Views com prefixo ALL_ refere-se à perspectiva geral do usuário do banco
de dados.
Estas views retornam informação sobre objetos do schema em que o
usuário tem acesso público ou através de grants explícitos de privilégios e
roles, somado aos objetos de schema que ele é dono.

CONNECT hr/hr@pdb1

SELECT OWNER, OBJECT_NAME, OBJECT_TYPE


FROM ALL_OBJECTS
ORDER BY OWNER, OBJECT_NAME;

Views com prefixo USER_


Estas views:

• Referem-se a ambiente privado do usuário no database, incluindo


metadados sobre os objetos de schema criados pelo usuário, grants
concedidos pelo usuário e assim por diante;
• Mostram somente as linhas pertinentes para o usuário, retornando
um subconjunto da informações da view ALL_;
• Tem colunas idênticas para as outras views, exceto que a coluna
OWNER é implícita;
• Podem ter sinônimos públicos abreviados por conveniência.

CONNECT hr/hr@pdb1

SELECT OBJECT_NAME, OBJECT_TYPE


FROM USER_OBJECTS
ORDER BY OBJECT_NAME;

A tabela DUAL
DUAL é uma pequena tabela no dicionário de dados que o Oracle
Database e os programas escritos pelo usuário podem referenciar para
garantir um resultado conhecido.

A tabela DUAL é útil quando o valor deve ser devolvido somente uma vez,
por exemplo, a data e hora corrente. Todos os usuários do database tem
acesso à DUAL.

A tabela DUAL tem uma coluna chamada DUMMY e uma linha contendo o
valor X. No exemplo abaixo temos uma consulta na tabela DUAL que
executa uma operação aritmética:

SQL> SELECT ((3*4)+5)/3 FROM DUAL;

((3*4)+5)/3
-----------
5.66666667

Dynamic Performance Views


Ao longo da sua operação, o Oracle Database mantém um conjunto de
tabelas virtuais que registram a atividade corrente do database.

Estas views são dinâmicas porque elas são continuamente atualizadas


enquanto o database está aberto e em utilização. Estas views são algumas
vezes chamadas de views V$, porque o nome delas inicia com o V$.

Views de performance dinâmica contém informações tais como:

• Parâmetros de sistema e de sessão;


• Utilização de memória e alocação;
• Estados de arquivos(incluindo arquivos de backup RMAN);
• Progresso de jobs e tarefas;
• Execução de SQL;
• Estatísticas e métricas.

As views de performance dinâmicas possuem as seguintes utilizações


primárias:
• O Oracle Enterprise Manager utiliza estas views para obter
informações sobre o database;
• Administradores podem utilizar as views monitorar performance e
para debugging.

Conteúdos das Dynamic Performance Views


Views de performance dinâmica são chamada de fixed views porque elas
não podem ser alteradas ou removidas por um administrador do banco de
dados. Entretanto, administradores do database podem consultar e criar
views nas tabelas e conceder acesso a estas views a outros usuários.

O usuário SYS é dono das tabelas de performance dinâmica, cujo os


nomes começam com V_$. Views são criadas nestas tabelas e sinônimos
públicos são prefixados com V$. Por exemplo, a view V$DATAFILE contém
informações sobre data files. A view V$FIXED_TABLE contém informação
sobre todas as tabelas e views de performance dinâmica.

Para quase toda view V$, existe uma view GV$ correspondente. Em
Oracle Real Application Clusters(Oracle RAC), consultando a view GV$
recupera informação de todas as instâncias de banco de dados.

Quando você utiliza o Database Configuration Assistant(DBCA) para criar


o database, o Oracle automaticamente cria o dicionário de dados. Oracle
Database automaticamente executa o script catalog.sql, que contém
definições das views e sinônimos públicos para as views de performance
dinâmica. Você deve executar o catalog.sql pra criar estas views e
sinônimos.

Abaixo, temos alguns exemplos:

-- Apresenta a data com hora do servidor


select to_char(sysdate,'dd/mm/yyyy hh24:mi:ss') Hora
from dual;

-- tamanho de um schema
col kbytes for 999999999.90
col mbytes for 999999999.90
break on report
compute sum label Total of kbytes on report
compute sum label Total of mbytes on report
select tablespace_name,segment_type,
sum(bytes/1024) kbytes,
sum(bytes/1024/1024) mbytes
from dba_segments
where owner like upper('&1')
group by tablespace_name,segment_type;

-- verificar dados da instância


set lines 120
col host_name for a15
col instance_name for a10
col startup_time for a18
col user for a12
col version for a10
col status for a10
select decode(instr(host_name,'.'),0,host_name,
substr(host_name,1,instr(host_name,'.')-1))
host_name,
instance_name,d.name dbname, user,
i.status,to_char(startup_time, 'dd/mm/yy
hh24:mi:ss') startup_time,
version, logins, d.open_mode
from v$instance i, v$database d;

Algumas views úteis no dia a dia do DBA:

• dba_tables
• dba_users
• dba_tablespaces
• dba_indexes
• dba_objects
• dba_segments
• dba_lobs
• dba_data_files
• dba_temp_files
• v$session
• v$instance
• v$database
• v$datafile
• v$log
• v$logfile
• v$lock
• v$session_longops
• v$session_wait

Referências:

https://docs.oracle.com/en/database/oracle/oracle-database/19/cncpt/data-dictionary-
and-dynamic-performance-views.html#GUID-BDF5B748-
EB43-4B48-938E-89099069C3BB

Você também pode gostar