Indexes in Oracle Databases - Luxoft

16
www.luxoft.com Indexes in Oracle Database

Transcript of Indexes in Oracle Databases - Luxoft

Page 1: Indexes in Oracle Databases - Luxoft

www.luxoft.com

Indexes in Oracle Database

Page 2: Indexes in Oracle Databases - Luxoft

www.luxoft.com

Индексы

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

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

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

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

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

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

Page 3: Indexes in Oracle Databases - Luxoft

www.luxoft.com

Индексы

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

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

«Three B»: Boeing, Balanced, Bayer.

B-Tree

Page 4: Indexes in Oracle Databases - Luxoft

www.luxoft.com

Индексы

Селекция (WHERE)

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

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

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

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

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

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

SQL

Page 5: Indexes in Oracle Databases - Luxoft

www.luxoft.com

B-Tree индексы

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

Descending

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

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

Page 6: Indexes in Oracle Databases - Luxoft

www.luxoft.com

B-Tree индексы

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

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

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

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

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

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

Reverse Key Index

Page 7: Indexes in Oracle Databases - Luxoft

www.luxoft.com

B-Tree индексы

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

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

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

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

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

Compressed Index

Page 8: Indexes in Oracle Databases - Luxoft

www.luxoft.com

B-Tree индексы

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

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

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

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

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

“Partial” Index

Page 9: Indexes in Oracle Databases - Luxoft

www.luxoft.com

Индексы

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

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

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

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

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

Bitmap

Page 10: Indexes in Oracle Databases - Luxoft

www.luxoft.com

Индексы

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

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

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

индекса.

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

системах.

Bitmap Join

Page 11: Indexes in Oracle Databases - Luxoft

www.luxoft.com

B-Tree индексы

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

данных.

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

B-Tree.

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

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

Index Organized Table

Page 12: Indexes in Oracle Databases - Luxoft

www.luxoft.com

B-Tree индексы

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

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

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

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

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

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

SQL Server.

Cluster Index

Page 13: Indexes in Oracle Databases - Luxoft

www.luxoft.com

B-Tree индексы

Partitioning. Local and Global Indexes

Partitioned Local Index Global Index

Page 14: Indexes in Oracle Databases - Luxoft

www.luxoft.com

B-Tree индексы

Partitioning. Partitioned Global Index

Page 15: Indexes in Oracle Databases - Luxoft

www.luxoft.com

Индексы

Application Domain Indexes

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

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

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

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

- Oracle Text Indexes;

- Oracle Spatial Indexes.

Page 16: Indexes in Oracle Databases - Luxoft

www.luxoft.com

THANK YOU