Mestres, boa tarde.
Estou querendo identificar quais colunas de uma tabela estão com índice e também quais colunas de uma tabela são foreign key.
Bom, com essas 2 identificações pretendo vasculhar meu banco com a intenção de identificar quais foreign key estão sem índice.
Abraços
Identificar qual coluna está atribuida a um índice
- adrianoturbo
- Moderador
- Mensagens: 393
- Registrado em: Qui, 20 Mar 2008 4:09 pm
- Localização: Brasília
Adriano Alves
---Para cada problema dificil existe uma solução simples.----
---Para cada problema dificil existe uma solução simples.----
Brother,a view ALL_IND_COLUMNS é perfeita ,ela retorna todas as colunas indexadas de todas as tabelas atualmente.
Além dessa view tem mais duas que também são interessantes que retornam as colunas indexadas :
-DBA_IND_COLUMNS -retorna coluna indexadas de todas as tabelas do banco de dados.
-USER_IND_COLUMNS -retorna as colunas indexadas dos usuários conectados atualmente.
Bom é isso Brother,espero ter ajudado e boa sorte !!!
Além dessa view tem mais duas que também são interessantes que retornam as colunas indexadas :
-DBA_IND_COLUMNS -retorna coluna indexadas de todas as tabelas do banco de dados.
-USER_IND_COLUMNS -retorna as colunas indexadas dos usuários conectados atualmente.
SELECT COLUMN_NAME FROM ALL_IND_COLUMNS
ORDER BY COLUMN_NAME
SELECT COLUMN_NAME FROM DBA_IND_COLUMNS
ORDER BY COLUMN_NAME
SELECT COLUMN_NAME FROM USER_IND_COLUMNS
ORDER BY COLUMN_NAME
- adrianoturbo
- Moderador
- Mensagens: 393
- Registrado em: Qui, 20 Mar 2008 4:09 pm
- Localização: Brasília
Adriano Alves
---Para cada problema dificil existe uma solução simples.----
---Para cada problema dificil existe uma solução simples.----
Faltou falar das foreign keys ,seguinte Brother,uma view excelente para descobrir todas chaves estrangeiras é a ALL_CONSTRAINTS .
Além dessa existe mais duas views:
-DBA_CONSTRAINTS -retorna todas as definições restrições do banco de dados
-USER_CONSTRAINTS -retorna todas as definições restrições de uma tabela de um usuário conectado.
Seguem os booleanos :
C =checar restrição de uma tabela
P= chave primária
U =chave única
R =chave estrangeira
V =com opção de checar,na view
O =apenas leitura, na view
Além dessa existe mais duas views:
-DBA_CONSTRAINTS -retorna todas as definições restrições do banco de dados
-USER_CONSTRAINTS -retorna todas as definições restrições de uma tabela de um usuário conectado.
Seguem os booleanos :
C =checar restrição de uma tabela
P= chave primária
U =chave única
R =chave estrangeira
V =com opção de checar,na view
O =apenas leitura, na view
SELECT * from ALL_CONSTRAINTS
WHERE CONSTRAINT_TYPE ='C'
SELECT * from ALL_CONSTRAINTS
WHERE CONSTRAINT_TYPE ='P'
SELECT * from ALL_CONSTRAINTS
WHERE CONSTRAINT_TYPE ='U'
SELECT * from ALL_CONSTRAINTS
WHERE CONSTRAINT_TYPE ='R'
SELECT * from ALL_CONSTRAINTS
WHERE CONSTRAINT_TYPE ='V'
SELECT * from ALL_CONSTRAINTS
WHERE CONSTRAINT_TYPE ='O'
-
- Rank: DBA Júnior
- Mensagens: 190
- Registrado em: Sex, 27 Out 2006 11:12 am
- Localização: 88350000
Pablo
Bom dia Adriano.
Cara, eu já tinha chego nessas view...o problema, é que a view ALL_CONSTRAINSTS não mostra em qual coluna da tabela é a constraint_name.
Por exemplo:
uma das linhas de retorno é a coluna constraint_name (informando o nome da minha fk) que aponta a descrição CLIENTE_CIDADE_FK....porém eu preciso saber qual nome de coluna é a fk referenciada (no caso é a coluna COD_CIDADE).
Não sei se fui claro.
Abraços
Cara, eu já tinha chego nessas view...o problema, é que a view ALL_CONSTRAINSTS não mostra em qual coluna da tabela é a constraint_name.
Por exemplo:
SELECT * from ALL_CONSTRAINTS ,
WHERE CONSTRAINT_TYPE ='R' and owner = 'MEU_OWNER' and TABLE_NAME = 'CLIENTE'
Não sei se fui claro.
Abraços
-
- Rank: DBA Júnior
- Mensagens: 190
- Registrado em: Sex, 27 Out 2006 11:12 am
- Localização: 88350000
Pablo
Achei turma...
tem q fazer um join com a view ALL_CONS_COLUMNS...
fica assim:
Valeu ai turma 
tem q fazer um join com a view ALL_CONS_COLUMNS...
fica assim:
SELECT t.CONSTRAINT_NAME,
p.COLUMN_NAME f
rom ALL_CONSTRAINTS t,
all_cons_columns p
WHERE t.CONSTRAINT_TYPE ='R'
and t.owner = 'MEU_OWNER'
and t.TABLE_NAME = 'CLIENTE'
and p.owner = 'MEU_OWNER'
and p.TABLE_NAME = 'CLIENTE'
and t.CONSTRAINT_NAME = p.CONSTRAINT_NAME

- adrianoturbo
- Moderador
- Mensagens: 393
- Registrado em: Qui, 20 Mar 2008 4:09 pm
- Localização: Brasília
Adriano Alves
---Para cada problema dificil existe uma solução simples.----
---Para cada problema dificil existe uma solução simples.----
Opa que bom que conseguiu Brother.


-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 47 visitantes