Es ist sehr üblich, dass Sie Indexstatus und zugeordnete Spalten für eine Oracle-Tabelle finden möchten
Und manchmal möchten Sie auch wissen, welche Spalten den Indexen zugeordnet sind.
Folgende Ansichten wären in diesen Fällen hilfreich und Indizes für eine Tabelle in Oracle zu finden
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
Wie man den Index einer Tabelle in Oracle überprüft
Wir können die folgende Abfrage verwenden, um zu erfahren, wie die Indexspalte in der Tabelle in Oracle überprüft wird und wie der Index in der Tabelle in Oracle überprüft wird. Hier ist die Abfrage, wie man Indizes für eine Tabelle in Oracle findet
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 /
Wie man den Indexstatus in Oracle überprüft
Normaler Index
SELECT owner, index_name, tablespace_name,status FROM dba_indexes;
wie man unbrauchbare Indizes in Oracle überprüft
SELECT owner, index_name, tablespace_name,status FROM dba_indexes WHERE status = 'UNUSABLE';
Indexpartitionen:
SELECT index_owner, index_name, partition_name, tablespace_name,status FROM dba_ind_PARTITIONS;
Wenn Sie unbrauchbare Ind-Partitionen wissen möchten, können wir die folgende Abfrage verwenden
SELECT index_owner, index_name, partition_name, tablespace_name,status FROM dba_ind_PARTITIONS WHERE status = 'UNUSABLE';
Unterpartitionen indizieren:
SELECT index_owner, index_name, partition_name, subpartition_name, tablespace_name,status FROM dba_ind_SUBPARTITIONS;
Wenn Sie unbrauchbare ind-Unterpartitionen wissen möchten, können wir die folgende Abfrage verwenden
SELECT index_owner, index_name, partition_name, subpartition_name, tablespace_name,status FROM dba_ind_SUBPARTITIONS WHERE status = 'UNUSABLE';
Abfrage, um den mit einer Einschränkung verknüpften Index zu überprüfen
SELECT index_name, table_name, uniqueness FROM DBA_INDEXES WHERE table_name = '&1';
Alle Indizes in einem Schema auflisten
SELECT index_name, table_name, uniqueness FROM DBA_INDEXES WHERE owner = '&1';
Abfrage, um die Indexstatistik für die Tabelle zu finden
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 /
Abfrage, um die Indexspaltendefinition zu finden
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 /
Mit 12c hat Oracle das Konzept der Partial-Indizes in partitionierten Tabellen eingeführt. Die *_INDEXES-Ansicht wurde so modifiziert, dass sie eine INDEXING-Spalte enthält, die angibt, ob der Index FULL oder PARTIAL ist.
Überprüfen Sie den Indizierungsstatus des Indexes.
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;
Verwandte Artikel
Virtual Index in Oracle :Was ist Virtual Index in Oracle? Verwendungen, Einschränkungen, Vorteile und Verwendung zum Überprüfen des Explain-Plans in der Oracle-Datenbank, versteckter Parameter _USE_NOSEGMENT_INDEXES
Oracle-Index-Clustering-Faktor:Wie der Oracle-Index-Clustering-Faktor berechnet wird und wie er sich auf den Explain-Plan auswirkt
Oracle Partitioned Table :WAS IST eine partitionierte Oracle-Tabelle?,Wie verschiebt man das vorhandene Objekt in ein partitioniertes Objekt?,Partitionierung für Leistung – Partitionsbereinigung
Oracle-Partitionsindex :Grundlegendes zum Oracle-Partitionsindex ,Was sind globale, nicht partitionierte Indizes?, Was ist ein lokaler Präfix Indizes, lokaler Index ohne Präfix
Arten von Indizes in Oracle:Diese Seite enthält Informationen zu Oracle-Indizes, verschiedene Arten von Indizes in Oracle mit Beispielen, wie man den Index in Oracle erstellt/löscht/ändert
Ich hoffe, Ihnen gefällt diese Zusammenstellung von Oracle-Index-bezogenen Abfragen und sie hilft bei der Suche nach Antworten auf verschiedene Abfragen, z. Bitte teilen Sie mir mit, was ich dieser Liste noch hinzufügen kann, um diesem Beitrag mehr Wert zu verleihen. Bitte geben Sie mir auch das Feedback
Auch lesen
Wie man alle Tabellen in Oracle auflistet:Wir können die Liste aller Tabellen in Oracle erhalten, indem wir entweder all_tables oder user_tables oder dba_tables abfragen. Wir können Spalte und Where-Klausel nach Bedarf auswählen
So überprüfen Sie die Tabellengröße in Oracle:Finden Sie die Abfrage heraus, um die Tabellengröße in der Oracle-Datenbank zu überprüfen, die zehn größten Tabellen in einem bestimmten Schema oder einen bestimmten Tablespace in Oracle
So verwalten Sie Indizes
Empfohlene Kurse
Hier ist der nette Udemy-Kurs für Oracle SQL
Oracle-Sql-Schritt-für-Schritt :Dieser Kurs behandelt grundlegendes SQL, Joins, Erstellen von Tabellen und Ändern ihrer Struktur, Erstellen von Ansichten, Union, Union -all und vieles mehr . Ein großartiger Kurs und ein Muss für SQL-Einsteiger
Der vollständige Oracle SQL-Zertifizierungskurs :Dies ist ein guter Kurs für alle, die für SQL-Entwicklerfähigkeiten einsatzbereit werden möchten. Ein gut erklärter Kurs
Oracle SQL Developer:Grundlagen, Tipps und Tricks :Das Oracle Sql-Entwicklertool wird von vielen Entwicklern verwendet. Dieser Kurs gibt uns Tricks und Lektionen, wie man es effektiv nutzt und ein produktiver SQL-Entwickler wird
Oracle SQL Performance Tuning Masterclass 2020 :Leistungsoptimierung ist eine der kritischsten und gefragtesten Fähigkeiten. Dies ist ein guter Kurs, um mehr darüber zu erfahren und mit der Optimierung der SQL-Leistung zu beginnen