Indexes in Oracle Databases - Luxoft

Preview:

Citation preview

www.luxoft.com

Indexes in Oracle Database

www.luxoft.com

Индексы

«Обычный» индекс – B-Tree индекс.

Повышают производительность выполнения запросов.

Хранятся на диске.

Позволяют избежать полного сканирования таблицы.

Требуют времени на обновление при DML-операциях.

Основные сведения

www.luxoft.com

Индексы

Сбалансированные ветвистые деревья.

Авторы: Rudolf Bayer и Ed McCreight.

«Three B»: Boeing, Balanced, Bayer.

B-Tree

www.luxoft.com

Индексы

Селекция (WHERE)

Соединение (JOIN)

Группировка (GROUP BY)

Сортировка (ORDER BY)

Удаление дубликатов (DISTINCT)

Агрегатные функции (MAX, MIN, COUNT)

TOP-N запросы (ROWNUM)

SQL

www.luxoft.com

B-Tree индексы

Составные (composite, concatenated)

Descending

Функциональные (function-based)

Стандартные подтипы

www.luxoft.com

B-Tree индексы

Решает проблему «самого правого

листового блока».

Работает на условия равенства.

Не работает на условия неравенства.

Не может быть использован агрегатными

функциями (MIN, MAX).

Reverse Key Index

www.luxoft.com

B-Tree индексы

Позволяет уменьшить избыточность в

блоках составных индексов.

Уменьшает количество потребляемого

дискового пространства.

Даѐт большую нагрузку на CPU.

Compressed Index

www.luxoft.com

B-Tree индексы

Доступ по индексу только по

определѐнным значениям столбца.

Позволяет не хранить данные, которые

не будут запрошены по индексу.

«Неудобное» условие на выборку.

“Partial” Index

www.luxoft.com

Индексы

«Битовые карты».

Подходит для колонок со средней и

низкой селективностью.

Хорошо работает в OLAP системах.

Плохо работает в OLTP системах.

Bitmap

www.luxoft.com

Индексы

Позволяет создать индекс на таблицу,

используя колонки другой таблицы.

Денормализует данные внутри

индекса.

Подходит для использования в OLAP

системах.

Bitmap Join

www.luxoft.com

B-Tree индексы

Позволяет избежать дублирования

данных.

Хранит данные таблицы в структуре

B-Tree.

«Тяжѐлые» вторичные индексы.

Index Scan вместо Full Table Scan.

Index Organized Table

www.luxoft.com

B-Tree индексы

Используется в кластеризованных таблицах.

В кластере строки из нескольких таблиц

хранятся в одном блоке данных.

Позволяет быстро находить «общие» блоки

данных по ключу.

Не то же самое, что Cluster Index в MS

SQL Server.

Cluster Index

www.luxoft.com

B-Tree индексы

Partitioning. Local and Global Indexes

Partitioned Local Index Global Index

www.luxoft.com

B-Tree индексы

Partitioning. Partitioned Global Index

www.luxoft.com

Индексы

Application Domain Indexes

Oracle позволяет добавлять пользовательские типы индексов.

Реализуется через специальный API (ODCIIndex).

Работает с Oracle kernel не напрямую.

Наиболее известны:

- Oracle Text Indexes;

- Oracle Spatial Indexes.

www.luxoft.com

THANK YOU

Recommended