É muito comum que você queira encontrar o status dos índices e as colunas atribuídas para uma tabela oracle
E também, às vezes, você deseja saber as colunas atribuídas aos índices.
Seguir as visualizações seria útil nesses casos e encontrar índices em uma tabela no oracle
dba_ind_columns : This is to used if login with user having DBA role all_ind_columns : This is to used if login with user having normal role user_ind_columns : This is to used if login with user having normal role
Como verificar o índice na tabela no oracle
Podemos usar a consulta abaixo sobre como verificar a coluna de índice na tabela no oracle e como verificar o índice na tabela no oracle. Aqui está a consulta sobre como encontrar índices em uma tabela no oracle
set pagesize 50000 verify off echo off col table_name head 'Table Name' format a20 col index_name head 'Index Name' format a25 col column_name head 'Column Name' format a30 break on table_name on index_name select table_name, index_name, column_name from all_ind_columns where table_name like upper('&Table_Name') order by table_name, index_name, column_position /
como verificar o status do índice no oracle
Índice normal
SELECT owner, index_name, tablespace_name,status FROM dba_indexes;
como verificar índices inutilizáveis no oracle
SELECT owner, index_name, tablespace_name,status FROM dba_indexes WHERE status = 'UNUSABLE';
Partições de índice:
SELECT index_owner, index_name, partition_name, tablespace_name,status FROM dba_ind_PARTITIONS;
Se você quiser saber as partições de pesquisa inutilizáveis, podemos usar a consulta abaixo
SELECT index_owner, index_name, partition_name, tablespace_name,status FROM dba_ind_PARTITIONS WHERE status = 'UNUSABLE';
Indexar subpartições:
SELECT index_owner, index_name, partition_name, subpartition_name, tablespace_name,status FROM dba_ind_SUBPARTITIONS;
Se você quiser saber sobre partições ind inutilizáveis, podemos usar a consulta abaixo
SELECT index_owner, index_name, partition_name, subpartition_name, tablespace_name,status FROM dba_ind_SUBPARTITIONS WHERE status = 'UNUSABLE';
Consulta para verificar o índice associado a uma restrição
SELECT index_name, table_name, uniqueness FROM DBA_INDEXES WHERE table_name = '&1';
Listar todos os índices em um esquema
SELECT index_name, table_name, uniqueness FROM DBA_INDEXES WHERE owner = '&1';
Consulta para encontrar as estatísticas de índice da tabela
set linesize 200 set pages 250 set verify off col blevel format 99 col table_name format a22 heading 'TABLE NAME' col u format a1 heading 'U' col index_name format a25 heading 'INDEX NAME' col column_name format a23 heading 'COLUMN NAME' col column_position format 99 heading 'SEQ' col column_length format 9999 heading 'LEN' col leaf_blocks format 999990 heading 'LEAF|BLOCKS' col distinct_keys format 9999990 heading 'DISTINCT|KEYS' col avg_leaf_blocks_per_key format 999990 heading 'LEAF|BLKS|/KEY' col avg_data_blocks_per_key format 999990 heading 'DATA|BLKS|/KEY' rem break on table_name skip 1 on index_name on u rem select i.table_name,i.blevel, i.leaf_blocks, i.distinct_keys,i.avg_leaf_blocks_per_key, i.avg_data_blocks_per_key, decode( i.uniqueness, 'NONUNIQUE', null, 'UNIQUE', 'U', 'BITMAP', 'B', '?' ) u, i.index_name,i.last_analyzed, c.column_position, c.column_name, c.column_length from sys.dba_ind_columns c, sys.dba_indexes i where (i.table_owner,i.table_name) in ('&1','&2') and i.owner = c.index_owner and i.index_name = c.index_name order by i.table_owner, i.table_name, i.index_name, c.column_position /
Consulta para encontrar a definição da coluna do índice
ttitle 'Index Column Definitions' rem set linesize 100 set pages 250 set verify off col table_name format a22 heading 'TABLE NAME' col u format a1 heading 'U' col index_name format a20 heading 'INDEX NAME' col column_name format a25 heading 'COLUMN NAME' col column_position format 99 heading 'SEQ' col column_length format 999 heading 'LEN' rem break on table_name skip 1 on index_name on u rem select i.table_name, decode( i.uniqueness, 'NONUNIQUE', null, 'UNIQUE', 'U', 'BITMAP', 'B', '?' ) u, i.index_name, c.column_position, c.column_name, c.column_length from sys.dba_ind_columns c, sys.dba_indexes i where i.table_owner like upper('&owner') and i.table_name like upper('&table') and i.index_name like upper('&index') and c.column_name like upper('&column') and i.owner = c.index_owner and i.index_name = c.index_name order by i.table_owner, i.table_name, i.index_name, c.column_position /
Com o 12c, a Oracle introduziu o conceito de índices parciais na tabela particionada. A visualização *_INDEXES foi modificada para incluir uma coluna INDEXING, que indica se o índice é FULL ou PARTIAL.
Verifique o status de indexação do índice.
SELECT index_name, indexing FROM dba_indexes ORDER BY 1; INDEX_NAME INDEXING ------------------------- ------- EXP_INDEX_N1 PARTIAL This happened when we have indexing partial tag in the create index statement. CREATE INDEX EXP_INDEX_NI ON tab_name(col1) Local INDEXING PARTIAL;
Artigos relacionados
Índice Virtual no Oracle:O que é Índice Virtual no Oracle? Usos, limitação, vantagem e como usar para verificar o plano de explicação no banco de dados Oracle, parâmetro oculto _USE_NOSEGMENT_INDEXES
Fator de clustering do Oracle Index:como o fator de clustering do Oracle Index é calculado e como isso afeta o plano de explicação
Tabela Particionada do Oracle :O QUE É Oracle Partition Table?, Como mover o objeto existente para o objeto Partitioned?, Partitioning for Performance – Partition Pruning
Oracle Partition Index :Entendendo o índice de partição Oracle ,O que são índices globais não particionados?, O que é prefixado local índices, índice local não prefixado
Tipos de índices no oracle :Esta página consiste em informações de índices do oracle,diferentes tipos de índices no oracle com exemplo,como criar/descartar/alterar o índice no oracle
Espero que você goste desta compilação de consultas relacionadas ao índice oracle e ajude a encontrar respostas para várias consultas, como encontrar o índice em uma tabela, listar todos os índices no esquema, status do índice em uma tabela e muito mais. Por favor, compartilhe comigo o que mais eu posso adicionar a esta lista para agregar mais valor a este post. Por favor, forneça-me o feedback também
Leia também
Como listar todas as tabelas no Oracle:podemos obter o List All Tables no Oracle consultando all_tables ou user_tables ou dba_tables. podemos selecionar a coluna e a cláusula where conforme a necessidade
Como verificar o tamanho da tabela no Oracle:Descubra a consulta para verificar o tamanho da tabela no banco de dados Oracle, as dez principais tabelas grandes em determinado esquema ou espaço de tabela específico no oracle
Como gerenciar índices
Cursos recomendados
Aqui está o bom curso da Udemy para Oracle SQL
Oracle-Sql-Step-by-step:Este curso abrange sql básico, junções, criação de tabelas e modificação de sua estrutura, criação de exibição, união, união -tudo e muitas outras coisas . Um ótimo curso e curso obrigatório para iniciantes em SQL
O Curso Completo de Certificação Oracle SQL :Este é um bom curso para quem quer estar pronto para trabalhar com habilidades de desenvolvedor SQL. Um bom curso explicado
Oracle SQL Developer:Essentials, Tips and Tricks :A ferramenta de desenvolvedor Oracle Sql está sendo usada por muitos desenvolvedores. Este curso nos dá truques e lições sobre como usá-lo efetivamente e se tornar um desenvolvedor sql produtivo
Oracle SQL Performance Tuning Masterclass 2020 :O ajuste de desempenho é uma das habilidades críticas e mais procuradas. Este é um bom curso para aprender sobre isso e começar a fazer o ajuste de desempenho do sql