Разделение индексов Oracle

Что же происходит с индексами при разделении таблиц? Выбор за вами: можно оставить любой из индексов нетронутым (такие индексы будем называть глобальными (global index)) или же разбить его на части, соответствующие разделам таблицы локальные индексы, (local index)).

 

Что касается глобальных индексов, можно разбить их не так, как была разбита таблица. Если вы примете во внимание тот факт, что как древовидные (b-tree), так и растровые (bit-map) индексы могут использоваться одновременно, то поймете, что все может очень усложниться. Если к разделенной таблице применяется оператор SELECT, UPDATE или DELETE, то для поиска строк оптимизатор может воспользоваться различными способами:

  1. Использовать глобальный индекс (если таковой существует и его столбцы упомянуты в операторе SQL) для нахождения требуемых строк в одном или нескольких разделах.
  2. Просматривать локальный индекс для каждого раздела для определения того, содержит ли раздел искомые строки.
  3. Определить подмножество разделов, которые могут содержать искомые строки, а затем обратиться к локальным индексам этих разделов.

Хотя простейшим решением кажется использование глобального индекса, это может быть проблематично. Так как глобальные индексы распространяются на все разделы таблицы, на них неблагоприятно влияет текущая работа с разделами. Например, если раздел разбивается на несколько частей или два раздела сливаются в один, все глобальные индексы таблицы помечаются как непригодные для использования и, прежде чем их можно будет снова использовать, они должны быть перестроены.

 

Особенно неприятно, когда глобальные индексы применяются по умолчанию для первичных ключей разделенной таблицы. Используйте вместо глобальных индексов локальные. Для поддержания целостности разделенных таблиц можно применять механизм уникальных локальных индексов.

Вас заинтересует / Intresting for you:

Oracle и непроцедурный доступ ...
Oracle и непроцедурный доступ ... 7405 просмотров Antoni Tue, 21 Nov 2017, 13:32:50
Видеокурс по администрированию...
Видеокурс по администрированию... 10565 просмотров Илья Дергунов Mon, 14 May 2018, 05:08:47
Работа с запросами Approximate...
Работа с запросами Approximate... 1490 просмотров Андрей Васенин Mon, 29 Oct 2018, 06:40:46
Listener Oracle
Listener Oracle 14946 просмотров Stas Belkov Tue, 21 Nov 2017, 13:18:05
Войдите чтобы комментировать

apv аватар
apv ответил в теме #8751 12 окт 2017 13:19
Работа по проектированию и оптимизации индексов в базе данных - это искусство, определенно...