View
21
Download
1
Category
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