Det är mycket vanligt att du vill hitta indexstatus och tilldelade kolumner för en orakeltabell
Och ibland vill du veta vilka kolumner som är tilldelade indexen.
Följande vyer skulle vara till hjälp i dessa fall och för att hitta index på en tabell i 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
Hur man kontrollerar index på tabellen i Oracle
Vi kan använda nedanstående fråga om hur man kontrollerar indexkolumn på tabell i Oracle och hur man kontrollerar index på tabell i Oracle. Här är frågan om hur man hittar index på en tabell i 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 /
hur man kontrollerar indexstatus i Oracle
Normalt index
SELECT owner, index_name, tablespace_name,status FROM dba_indexes;
hur man kontrollerar oanvändbara index i Oracle
SELECT owner, index_name, tablespace_name,status FROM dba_indexes WHERE status = 'UNUSABLE';
Indexpartitioner:
SELECT index_owner, index_name, partition_name, tablespace_name,status FROM dba_ind_PARTITIONS;
Om du vill veta oanvändbara ind-partitioner kan vi använda frågan nedan
SELECT index_owner, index_name, partition_name, tablespace_name,status FROM dba_ind_PARTITIONS WHERE status = 'UNUSABLE';
Index underpartitioner:
SELECT index_owner, index_name, partition_name, subpartition_name, tablespace_name,status FROM dba_ind_SUBPARTITIONS;
Om du vill veta oanvändbara ind-underpartitioner kan vi använda nedanstående fråga
SELECT index_owner, index_name, partition_name, subpartition_name, tablespace_name,status FROM dba_ind_SUBPARTITIONS WHERE status = 'UNUSABLE';
Fråga för att kontrollera Index associerat med en begränsning
SELECT index_name, table_name, uniqueness FROM DBA_INDEXES WHERE table_name = '&1';
Lista alla index i ett schema
SELECT index_name, table_name, uniqueness FROM DBA_INDEXES WHERE owner = '&1';
Fråga för att hitta indexstatistiken för tabellen
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 /
Fråga för att hitta definition av indexkolumn
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 /
Med 12c har Oracle introducerat konceptet med partiella index i partitionerad tabell. *_INDEXES-vyn har modifierats för att inkludera en INDEXERINGskolumn, som indikerar om indexet är HELT eller DELVIS.
Kontrollera indexets indexeringsstatus.
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;
Relaterade artiklar
Virtuellt index i Oracle :Vad är virtuellt index i Oracle? Användning, begränsning, fördel och hur man använder för att kontrollera förklara planen i Oracle-databasen, Hidden parameter _USE_NOSEGMENT_INDEXES
Oracle Index klustringsfaktor :Hur Oracle Index klustringsfaktor beräknas och hur det påverkar förklara planen
Oracle Partitioned Table :VAD ÄR en oracle-partitionerad tabell?,Hur flyttar man det befintliga objektet till ett partitionerat objekt?,Partitionering för prestanda – Partitionsbeskärning
Oracle-partitionsindex :Förstå Oracle-partitionsindex ,Vad är Global Non-partitioned Indexes?, Vad är lokalt prefix index, lokalt index utan prefix
Typer av index i oracle :Denna sida består av oracle-indexinformation, olika typer av index i oracle med exempel, hur man skapar/släpper/ändrar index i oracle
Jag hoppas att du gillar den här sammanställningen av oracle-indexrelaterade frågor och det kommer att hjälpa dig att hitta svar på olika frågor som hur man hittar index på en tabell, lista alla index i schemat, indexstatus på en tabell och många fler. Vänligen dela med mig vad jag kan lägga till i den här listan för att lägga till mer värde till detta inlägg. Ge mig feedback också
Läs även
Hur man listar alla tabeller i Oracle:vi kan få Lista alla tabeller i Oracle genom att antingen fråga alla_tabeller eller användartabeller eller dba_tabeller. vi kan välja kolumn och var-klausul efter behov
Hur man kontrollerar tabellstorleken i Oracle:Ta reda på frågan för att kontrollera tabellstorleken i Oracle-databasen, topp tio stora tabeller i särskilt schema eller viss tabellyta i Oracle
Hur man hanterar index
Rekommenderade kurser
Här är den trevliga Udemy-kursen för Oracle SQL
Oracle-Sql-Steg-för-steg :Den här kursen täcker grundläggande sql, går med, skapar tabeller och ändrar dess struktur, Skapa vy, Union, Union -allt och mycket annat . En bra kurs och måste-kurs för SQL-startare
The Complete Oracle SQL Certification Course :Det här är en bra kurs för alla som vill vara redo för SQL-utvecklare. En trevlig förklarad kurs
Oracle SQL Developer:Essentials, Tips and Tricks :Oracle Sql-utvecklarverktyget används av många utvecklare. Den här kursen ger oss tricks och lektioner om hur man effektivt använder den och blir en produktiv SQL-utvecklare
Oracle SQL Performance Tuning Masterclass 2020 :Prestandajustering är en av de kritiska och mest eftertraktade färdigheterna. Det här är en bra kurs för att lära dig om det och börja göra sql-prestandajustering