
Es muy común que desee encontrar el estado de los índices y las columnas asignadas para una tabla de Oracle
Y también en algún momento desea saber las columnas que están asignadas a los índices.
Las siguientes vistas serían útiles en estos casos y para encontrar índices en una tabla en 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
Cómo verificar el índice en la tabla en Oracle
Podemos usar la siguiente consulta sobre cómo verificar la columna de índice en la tabla en Oracle y cómo verificar el índice en la tabla en Oracle. Aquí está la consulta sobre cómo encontrar índices en una tabla en 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 /
cómo verificar el estado del índice en Oracle
Índice normal
SELECT owner, index_name, tablespace_name,status FROM dba_indexes;
cómo verificar índices inutilizables en Oracle
SELECT owner, index_name, tablespace_name,status FROM dba_indexes WHERE status = 'UNUSABLE';
Particiones de índice:
SELECT index_owner, index_name, partition_name, tablespace_name,status FROM dba_ind_PARTITIONS;
Si desea conocer las particiones ind inutilizables, entonces podemos usar la siguiente consulta
SELECT index_owner, index_name, partition_name, tablespace_name,status FROM dba_ind_PARTITIONS WHERE status = 'UNUSABLE';
Subparticiones de índice:
SELECT index_owner, index_name, partition_name, subpartition_name, tablespace_name,status FROM dba_ind_SUBPARTITIONS;
Si desea conocer las subparticiones ind inutilizables, entonces podemos usar la siguiente consulta
SELECT index_owner, index_name, partition_name, subpartition_name, tablespace_name,status FROM dba_ind_SUBPARTITIONS WHERE status = 'UNUSABLE';
Consulta para verificar el índice asociado con una restricción
SELECT index_name, table_name, uniqueness FROM DBA_INDEXES WHERE table_name = '&1';
Lista de todos los índices en un esquema
SELECT index_name, table_name, uniqueness FROM DBA_INDEXES WHERE owner = '&1';
Consulta para encontrar las estadísticas de índice de la tabla
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 la definición de columna de í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 /
Con 12c, Oracle ha introducido el concepto de índices parciales en la tabla particionada. La vista *_INDEXES se ha modificado para incluir una columna INDEXING, que indica si el índice es COMPLETO o PARCIAL.
Verifique el estado de indexación del í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;
Artículos relacionados
Índice virtual en Oracle:¿Qué es el índice virtual en Oracle? Usos, limitaciones, ventajas y cómo utilizar para comprobar el plan de explicación en la base de datos de Oracle, parámetro oculto _USE_NOSEGMENT_INDEXES
Factor de agrupación en clústeres del índice de Oracle:cómo se calcula el factor de agrupación en clústeres del índice de Oracle y cómo afecta al plan de explicación
Tabla particionada de Oracle :¿QUÉ ES la tabla particionada de Oracle?, ¿Cómo mover el objeto existente a un objeto particionado?, Particionamiento para el rendimiento - Eliminación de particiones
Índice de partición de Oracle:comprensión del índice de partición de Oracle, ¿Qué son los índices globales no particionados?, ¿Qué es el prefijo local? índices, índice local sin prefijo
Tipos de índices en Oracle:esta página consta de información de índices de Oracle, diferentes tipos de índices en Oracle con ejemplos, cómo crear/eliminar/alterar el índice en Oracle
Espero que le guste esta compilación de consultas relacionadas con el índice de Oracle y le ayudará a encontrar respuestas a varias consultas, como cómo encontrar el índice en una tabla, enumerar todos los índices en el esquema, el estado del índice en una tabla y muchos más. Comparta conmigo qué más puedo agregar a esta lista para agregar más valor a esta publicación. Por favor, envíenme sus comentarios también
Leer también
Cómo enumerar todas las tablas en Oracle:podemos obtener la Lista de todas las tablas en Oracle consultando all_tables o user_tables o dba_tables. podemos seleccionar la columna y la cláusula where según la necesidad
Cómo verificar el tamaño de la tabla en Oracle:descubra la consulta para verificar el tamaño de la tabla en la base de datos Oracle, las diez tablas principales en un esquema particular o un espacio de tabla particular en Oracle
Cómo administrar los índices
Cursos recomendados
Aquí está el buen curso de Udemy para Oracle SQL
Oracle-Sql-Step-by-step:este curso cubre sql básico, uniones, creación de tablas y modificación de su estructura, creación de vista, unión, unión, todo y mucho más. . Un gran curso y un curso imprescindible para principiantes de SQL
El curso completo de certificación de Oracle SQL :Este es un buen curso para cualquier persona que quiera estar preparado para trabajar con habilidades de desarrollador de SQL. Un buen curso explicado
Oracle SQL Developer:fundamentos, consejos y trucos :muchos desarrolladores utilizan la herramienta de desarrollo Oracle Sql. Este curso nos brinda trucos y lecciones sobre cómo usarlo de manera efectiva y convertirnos en un desarrollador sql productivo
Oracle SQL Performance Tuning Masterclass 2020 :El ajuste del rendimiento es una de las habilidades críticas y más buscadas. Este es un buen curso para aprender sobre esto y comenzar a realizar ajustes de rendimiento de sql