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