O dicionário de dados de todo SGBD armazena informações sobre o esquema de dados criado pelos usuários. No caso do Oracle é um conjunto de tabelas e visões criadas no esquema SYS.
A visão DICTIONARY é especialmente interessante por que contém a lista de visões que formam o próprio dicionário de dados. Ou seja, seria o meta-meta-esquema de dados.
A consulta abaixo retorna o número de visões para certos grupos de informações.
CASE WHEN SUBSTR(TABLE_NAME, 1, 5) = 'USER_' THEN 'USER_'
WHEN SUBSTR(TABLE_NAME, 1, 4) = 'ALL_' THEN 'ALL_'
WHEN SUBSTR(TABLE_NAME, 1, 4) = 'DBA_' THEN 'DBA_'
WHEN SUBSTR(TABLE_NAME, 1, 3) = 'V_$' THEN 'V_$'
WHEN SUBSTR(TABLE_NAME, 1, 2) = 'V$' THEN 'V$'
WHEN SUBSTR(TABLE_NAME, 1, 4) = 'GV_$' THEN 'GV_$'
WHEN SUBSTR(TABLE_NAME, 1, 3) = 'GV$' THEN 'GV$'
ELSE 'Others'
END PREFIX
, COUNT(*)
FROM DICTIONARY
GROUP BY
CASE WHEN SUBSTR(TABLE_NAME, 1, 5) = 'USER_' THEN 'USER_'
WHEN SUBSTR(TABLE_NAME, 1, 4) = 'ALL_' THEN 'ALL_'
WHEN SUBSTR(TABLE_NAME, 1, 4) = 'DBA_' THEN 'DBA_'
WHEN SUBSTR(TABLE_NAME, 1, 3) = 'V_$' THEN 'V_$'
WHEN SUBSTR(TABLE_NAME, 1, 2) = 'V$' THEN 'V$'
WHEN SUBSTR(TABLE_NAME, 1, 4) = 'GV_$' THEN 'GV_$'
WHEN SUBSTR(TABLE_NAME, 1, 3) = 'GV$' THEN 'GV$'
ELSE 'Others'
END;
O número de visões em cada grupo pode variar dependendo da versão de Oracle instalada. Os números abaixo correspondem ao Oracle 11g XE que estou utilizando.
Prefix | Count(*) | Descrição |
USER_ | 361 | Objetos pertencentes ao usuário corrente. |
DBA_ | 703 | Todos objetos na base de dados. |
ALL_ | 339 | Objetos que o usuário corrente tem privilégios de acesso, seja no seu esquema ou em outro. |
V$ | 618 | Informações dinâmicas de desempenho. |
GV$ | 491 | Informações de desempenho global do sistema, especialmente úteis em RACs. |
Others | 39 | Variados usos |
Caso você não lembre do nome de determinadas visões do dicionário de dados, você pode utilizar a visão DICTIONARY e escrever consultas como SELECT * FROM DICTIONARY WHERE TABLE_NAME LIKE '%INDEX%'. Afinal, ninguem é obrigado a lembrar o nome de 2000 visões, mas certametne é muito útil ter certo conhecimento do dicionário de dados.
Nenhum comentário:
Postar um comentário