Det er meget almindeligt, at du vil finde indeksstatus og tildelte kolonner til en orakel-tabel
Og du engang vil vide, hvilke kolonner der er tildelt indekserne.
Følgende visninger ville være nyttige i disse tilfælde og for at finde indekser på en tabel 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
Sådan tjekker man indeks på tabellen i Oracle
Vi kan bruge nedenstående forespørgsel om, hvordan man kontrollerer indekskolonne på tabel i Oracle, og hvordan man kontrollerer indeks på tabel i Oracle. Her er forespørgslen om, hvordan man finder indekser på en tabel 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 /
hvordan man kontrollerer indeksstatus i Oracle
Normalt indeks
SELECT owner, index_name, tablespace_name,status FROM dba_indexes;
hvordan du tjekker ubrugelige indekser i Oracle
SELECT owner, index_name, tablespace_name,status FROM dba_indexes WHERE status = 'UNUSABLE';
Indekspartitioner:
SELECT index_owner, index_name, partition_name, tablespace_name,status FROM dba_ind_PARTITIONS;
Hvis du vil kende ubrugelige ind-partitioner, så kan vi bruge nedenstående forespørgsel
SELECT index_owner, index_name, partition_name, tablespace_name,status FROM dba_ind_PARTITIONS WHERE status = 'UNUSABLE';
Indeks underpartitioner:
SELECT index_owner, index_name, partition_name, subpartition_name, tablespace_name,status FROM dba_ind_SUBPARTITIONS;
Hvis du vil kende ubrugelige ind-underpartitioner, så kan vi bruge nedenstående forespørgsel
SELECT index_owner, index_name, partition_name, subpartition_name, tablespace_name,status FROM dba_ind_SUBPARTITIONS WHERE status = 'UNUSABLE';
Forespørgsel for at kontrollere Index Associated with a Constraint
SELECT index_name, table_name, uniqueness FROM DBA_INDEXES WHERE table_name = '&1';
Liste alle indekser i et skema
SELECT index_name, table_name, uniqueness FROM DBA_INDEXES WHERE owner = '&1';
Forespørgsel for at finde indeksstatistikken for 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 /
Forespørgsel for at finde indekskolonnedefinition
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 introduceret konceptet med partielle indekser i partitioneret tabel. *_INDEXES-visningen er blevet ændret til at inkludere en INDEKSERENDE kolonne, som angiver, om indekset er FULD eller DELVIS.
Kontroller indekseringsstatussen for indekset.
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;
Relaterede artikler
Virtuelt indeks i Oracle:Hvad er virtuelt indeks i Oracle? Bruger, begrænsninger, fordele og hvordan man bruger det til at kontrollere forklaringsplanen i Oracle-databasen, skjult parameter _USE_NOSEGMENT_INDEXES
Oracle Index-klyngefaktor:Hvordan Oracle Index-klyngefaktor beregnes og hvordan det påvirker forklaringsplanen
Oracle Partitioned Table :HVAD ER Oracle-partitioneret tabel?,Hvordan flyttes det eksisterende objekt til Partitioneret objekt?,Partitionering for ydeevne – Partitionsbeskæring
Oracle Partition Index :Forstå Oracle-partitionsindekset ,Hvad er Global Non-partitioned Indexes?, Hvad er lokalt præfiks indekser, lokalt indeks uden præfiks
Typer af indekser i Oracle :Denne side består af Oracle-indeksoplysninger, forskellige typer indekser i Oracle med eksempel, hvordan man opretter/slipper/ændrer indekset i Oracle
Jeg håber, du kan lide denne samling af oracle-indeksrelaterede forespørgsler, og det vil hjælpe med at finde svar på forskellige forespørgsler, såsom hvordan man finder indeks på en tabel, liste alle indekser i skemaet, indeksstatus på en tabel og mange flere. Del venligst med mig, hvad jeg ellers kan tilføje til denne liste for at tilføje mere værdi til dette indlæg. Giv mig også feedback
Læs også
Sådan viser du alle tabeller i Oracle:Vi kan få listen over alle tabeller i Oracle ved enten at forespørge alle_tabeller eller brugertabeller eller dba_tabeller. vi kan vælge kolonne og hvor-klausul efter behov
Sådan kontrollerer man tabelstørrelse i Oracle:Find ud af forespørgslen for at kontrollere tabelstørrelse i Oracle-database, top ti store tabeller i et bestemt skema eller bestemt tablespace i Oracle
Sådan administreres indekser
Anbefalede kurser
Her er det fine Udemy-kursus til Oracle SQL
Oracle-Sql-trin-for-trin :Dette kursus dækker grundlæggende sql, joins, oprettelse af tabeller og ændring af strukturen, Create View, Union, Union -alle og meget andet. . Et godt kursus og must-have kursus for SQL starter
The Complete Oracle SQL Certification Course :Dette er et godt kursus for enhver, der ønsker at være jobklar til SQL-udviklerfærdigheder. Et godt forklaret kursus
Oracle SQL Developer:Essentials, Tips and Tricks :Oracle Sql-udviklerværktøj bliver brugt af mange udviklere. Dette kursus giver os tricks og lektioner til, hvordan man effektivt bruger det og bliver en produktiv sql-udvikler
Oracle SQL Performance Tuning Masterclass 2020 :Indstilling af ydeevne er en af de kritiske og mest søgte færdigheder. Dette er et godt kursus for at lære om det og begynde at lave sql-ydelsesjustering