sql >> Database >  >> RDS >> Oracle

hoe vind je indexen op een tabel in orakel

Het is heel gebruikelijk dat u de status van indexen en toegewezen kolommen voor een orakeltabel wilt vinden
En soms wilt u ook de kolommen weten die aan de indexen zijn toegewezen.
Volgende weergaven zouden in deze gevallen nuttig zijn en om indexen te vinden op een tabel in orakel

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

Hoe de index op tafel in orakel te controleren

We kunnen de onderstaande query gebruiken om de indexkolom in de tabel in Oracle te controleren en hoe de index op de tabel in Oracle te controleren. Hier is de vraag over het vinden van indexen op een tabel in orakel

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
/

hoe de indexstatus in orakel te controleren

Normale index

SELECT owner, index_name, tablespace_name,status
FROM dba_indexes;

hoe onbruikbare indexen in orakel te controleren

SELECT owner, index_name, tablespace_name,status
FROM dba_indexes
WHERE status = 'UNUSABLE';

Indexpartities:

SELECT index_owner, index_name, partition_name, tablespace_name,status
FROM dba_ind_PARTITIONS;

Als je onbruikbare ind-partities wilt weten, kunnen we de onderstaande zoekopdracht gebruiken

SELECT index_owner, index_name, partition_name, tablespace_name,status
FROM dba_ind_PARTITIONS
WHERE status = 'UNUSABLE';

Subpartities indexeren:

SELECT index_owner, index_name, partition_name, subpartition_name, tablespace_name,status
FROM dba_ind_SUBPARTITIONS;

Als je onbruikbare ind-subpartities wilt weten, kunnen we de onderstaande zoekopdracht gebruiken

SELECT index_owner, index_name, partition_name, subpartition_name, tablespace_name,status
FROM dba_ind_SUBPARTITIONS
WHERE status = 'UNUSABLE';

Query om index geassocieerd met een beperking te controleren

SELECT index_name, table_name, uniqueness
  FROM DBA_INDEXES WHERE table_name = '&1';

Laat alle indexen in een schema zien

SELECT index_name, table_name, uniqueness
  FROM DBA_INDEXES WHERE owner = '&1';

Query om de indexstatistieken voor de tabel te vinden

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
/

Query om definitie van indexkolom te vinden

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
/

Met 12c heeft Oracle het concept van gedeeltelijke indexen in gepartitioneerde tabel geïntroduceerd. De *_INDEXES-weergave is gewijzigd om een ​​INDEXING-kolom op te nemen, die aangeeft of de index VOLLEDIG of GEDEELTELIJK is.

Controleer de indexeringsstatus van de index.

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;

Gerelateerde artikelen
Virtuele index in Oracle :wat is virtuele index in Oracle? Gebruik, beperking, voordeel en hoe te gebruiken om het uit te leggen plan in de Oracle-database te controleren, Verborgen parameter _USE_NOSEGMENT_INDEXES
Oracle Index-clusterfactor:hoe de Oracle Index-clusterfactor wordt berekend en hoe dit het uitlegplan beïnvloedt
Oracle Partitioned Table :WAT IS een door Oracle gepartitioneerde tabel?, Hoe verplaats ik het bestaande object naar een gepartitioneerd object?, Partitionering voor prestaties – Partition Pruning
Oracle Partition Index:Oracle partitie-index begrijpen, Wat is globale niet-gepartitioneerde indexen?, Wat is een lokale prefix indexen, lokale index zonder prefix
Soorten indexen in orakel:deze pagina bestaat uit informatie over orakel-indexen, verschillende soorten indexen in orakel met bijvoorbeeld hoe de index in orakel te maken/verwijderen/wijzigen

Ik hoop dat je deze compilatie van orakelindex-gerelateerde zoekopdrachten leuk vindt en het zal helpen bij het vinden van antwoorden op verschillende vragen, zoals het vinden van een index op een tabel, een lijst van alle indexen in het schema, de indexstatus op een tabel en nog veel meer. Deel alsjeblieft met me wat ik nog meer aan deze lijst kan toevoegen om meer waarde aan dit bericht toe te voegen. Geef me alsjeblieft ook feedback

Lees ook
Hoe een lijst van alle tabellen in Oracle te maken:we kunnen de lijst met alle tabellen in Oracle verkrijgen door ofwel all_tables of user_tables of dba_tables op te vragen. we kunnen de kolom- en waar-clausule selecteren volgens de behoefte
Hoe de tabelgrootte in Oracle te controleren:ontdek de query om de tabelgrootte in de Oracle-database te controleren, top tien grote tabellen in een bepaald schema of bepaalde tabelruimte in Oracle
Indexen beheren

Aanbevolen cursussen

Hier is de mooie Udemy-cursus voor Oracle SQL
Oracle-Sql-Step-voor-stap:deze cursus behandelt basis-sql, joins, tabellen maken en de structuur wijzigen, weergave maken, Union, Union -alles en nog veel meer . Een geweldige cursus en een must-have cursus voor SQL-starters
De complete Oracle SQL-certificeringscursus :Dit is een goede cursus voor iedereen die Job-klaar wil zijn voor SQL-ontwikkelaarsvaardigheden. Een mooi uitgelegde cursus
Oracle SQL Developer:Essentials, Tips and Tricks :Oracle Sql-ontwikkelaarstool wordt door veel ontwikkelaars gebruikt. Deze cursus geeft ons trucs en lessen om het effectief te gebruiken en een productieve sql-ontwikkelaar te worden
Oracle SQL Performance Tuning Masterclass 2020 :Het afstemmen van prestaties is een van de belangrijkste en meest gezochte vaardigheden. Dit is een goede cursus om erover te leren en te beginnen met het afstemmen van sql-prestaties


  1. ORACLE 11g standaard ongevoelig voor hoofdletters

  2. Uitgebreide gebeurtenissen gebruiken om verouderde functies vast te leggen die worden gebruikt in een SQL Server-instantie (T-SQL-voorbeeld)

  3. Automatische verwijdering van vastgelopen processen in MS SQL Server

  4. Hoe fouten in sqlplus weer te geven