Oracle
 sql >> база данни >  >> RDS >> Oracle

как да намерите индекси на таблица в oracle

Много често се случва да искате да намерите състоянието на индекси и присвоените колони за таблица на Oracle
И също така понякога искате да знаете колоните, които са присвоени на индексите.
Следните изгледи биха били полезни в тези случаи и за намиране на индекси на таблица в 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

Как да проверя индекс на таблица в oracle

Можем да използваме по-долу заявка за това как да проверим индексната колона на таблица в oracle и как да проверим индекса на таблицата в oracle. Ето заявката как да намерите индекси в таблица в 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
/

как да проверите състоянието на индекса в oracle

Нормален индекс

SELECT owner, index_name, tablespace_name,status
FROM dba_indexes;

как да проверите неизползваемите индекси в oracle

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

Индексни дялове:

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

Ако искате да знаете неизползваемите ind дялове, можем да използваме заявката по-долу

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

Индексни подраздели:

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

Ако искате да знаете неизползваемите ind подраздели, тогава можем да използваме заявката по-долу

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

Запитване за проверка на индекс, свързан с ограничение

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

Избройте всички индекси в схема

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

Заявка за намиране на индексната статистика за таблицата

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
/

Запитване за намиране на дефиниция на индексна колона

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
/

С 12c Oracle въведе концепцията за частични индекси в разделена таблица. Изгледът *_INDEXES беше модифициран, за да включва колона INDEXING, която показва дали индексът е ПЪЛЕН или ЧАСТИЧЕН.

Проверете състоянието на индексиране на индекса.

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;

Сродни статии
Виртуален индекс в Oracle :Какво е виртуален индекс в Oracle? Употреби, ограничение, предимство и как да се използва за проверка на план за обяснение в базата данни на Oracle, скрит параметър _USE_NOSEGMENT_INDEXES
Коефициент на клъстериране на Oracle Index:Как се изчислява коефициентът на клъстериране на Oracle Index и как влияе върху плана за обяснение
Разделената таблица на Oracle :КАКВО Е разделена таблица на Oracle?,Как да преместя съществуващия обект в Разделен обект?,Разделяне за производителност – Подрязване на дял
Индекс на дял на Oracle:Разбиране на индекса на дяла на Oracle,Какво е глобалните неразделени индекси?, Какво е локален префиксен префикс? индекси, локален индекс без префикс
Типове индекси в oracle :Тази страница се състои от информация за индекси на oracle, различни типове индекси в oracle с пример, как да създадете/пуснете/промените индекса в oracle

Надявам се, че ви харесва тази компилация от заявки, свързани с индекса на Oracle, и ще ви помогне да намерите отговор на различни заявки, като например как да намерите индекс в таблица, да изброите всички индекси в схемата, състоянието на индекса в таблица и много други. Моля, споделете с мен какво още мога да добавя към този списък, за да добавя повече стойност към тази публикация. Моля, дайте ми и обратната връзка

Прочетете също
Как да изброим всички таблици в Oracle:можем да получим списъка с всички таблици в Oracle чрез запитване на all_tables или user_tables или dba_tables. можем да изберем колона и клауза where според нуждите
Как да проверим размера на таблицата в Oracle :Разберете Запитването за проверка на размера на таблицата в базата данни на Oracle, първите десет големи таблици в конкретна схема или конкретно пространство за таблици в Oracle
Как да управлявам индекси

Препоръчани курсове

Ето хубавия курс на Udemy за Oracle SQL
Oracle-Sql-Step-by-step :Този курс обхваща основния sql, присъединяванията, Създаването на таблици и промяната на нейната структура, Създаване на изглед, Обединение, Обединение - всичко и много други неща . Страхотен курс и задължителен курс за SQL начинаещи
Пълният курс за сертифициране на Oracle SQL :Това е добър курс за всеки, който иска да бъде готов за работа за SQL разработчици. Приятно обяснен курс
Oracle SQL Developer:Основни неща, съвети и трикове :Инструментът за разработчици на Oracle Sql се използва от много разработчици. Този курс ни дава трикове и уроци как да го използваме ефективно и да станем продуктивен sql разработчик
Мастърклас за настройка на производителността на Oracle 2020 г. :Настройката на производителността е едно от критичните и най-търсените умения. Това е добър курс, за да научите за него и да започнете да правите настройка на производителността на sql


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Сливане на два реда в един, като се заменят нулеви стойности

  2. Как да създам таблица на Oracle с вложени таблици от типове обекти?

  3. ORA-28000:акаунтът е заключен Грешка става често

  4. EBS 12.2.5 и по-нови версии:Несъответствие на бутона на страницата за вход

  5. Как да потвърдите номера на кредитна карта и да идентифицирате нейния тип с помощта на PL/SQL?