Показать сообщение отдельно
  #23  
Старый 24.09.2009, 13:24
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,211
По умолчанию Индексные опции



Индексные опции

Для эффективной выборки может быть выгоднее хранить ключи в убывающем порядке. Выбор основывается на том, в каком порядке наиболее часто выбираются данные.

Индекс с реверсированным ключом хранит в обратном порядке байты индексируемого значения. Его использование помогает устранить "горячие точки", возникающие, когда много пользователей обрабатывают данные в одном и том же порядке. В этом случае префиксная часть ключевых значений, обрабатываемых в текущий момент, близка друг к другу. В результате в определенной области индексной структуры производится большое количество действий. Индекс с реверсированным ключом распределяет эти действия по всей индексной структуре, поскольку индексируется версия ключевого значения с реверсировано располагаемыми байтами.

Индекс, созданный на основе объединения нескольких столбцов, называется составным (composite). Например, можно создать индекс на основе фамилий и имен служащих:

Код:
CREATE INDEX name_ix ON employees (last_name,   first_name);
В индексе, основанном на функции, располагаются значения, возвращаемые функцией. Для этой цели может использоваться встроенная функция SQL, поставляемая функция PL/SQL или же функция, написанная пользователем. В результате серверу не надо вызывать функцию для каждого ключевого значения при выполнении поиска на основе индексируемого выражения. В следующем примере индексируется размер дерева (tree volume), подсчитываемый с помощью функции на основе вида (species), высоты (height) и охвата (circumference) дерева. Эти значения хранятся в столбцах таблицы TREES.

Код:
CREATE INDEX tree_vol_ix ON
TREES(volume(species,height,circumference));
Запросы, содержащие в предложении WHERE выражение
volume (species, height, circumference), могут выполняться более быстро с помощью этого индекса, поскольку размер каждого дерева уже подсчитан. Индексы, основанные на функциях, сопровождаются автоматически, как и обычные индексы.

Сжатый индекс (compressed index) можно использовать для уменьшения занимаемого дискового пространства за счет времени выполнения. В нем повторно не хранятся одинаковые значения. В результате большее число индексных записей (входов) может располагаться в таком же дисковом пространстве, что позволяет читать больше записей с диска за такое же время. Сжатие и обратная операция (распаковка) должны производиться соответственно при записи и чтении из индекса.
__________________
Телеграм чат
Ответить с цитированием