Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Индексация в СУБД

Содержание

Понятие индексаОсновная проблема в СУБД – это поиск нужных данных за минимальное времяИндекс – это структура данных для быстрого поиска записей в таблице по значению ключаБыстрый поиск может быть выполнен в случае, если данные отсортированы. Сортировка
Индексация в СУБД Понятие индексаОсновная проблема в СУБД – это поиск нужных данных за минимальное Методы организации индексаПлотным индексом (некластерный индекс)Индексно-прямой файлПервичного ключа Методы организации индексовВторичного ключаНеплотным Плотный индексИндексный ключТалица индексаОсновная таблицаСодержит последовательность записей одинаковой длины в произвольном порядке.Содержит Плотный индексБлок 1Блок 2Блок 3Блок 4Таблица индексаОсновная таблица Плотный индекс2-я таблица индексаОсновная таблица Блок 1Блок 2Блок 3 Плотный индексАлгоритм поиска данныхПоиск индексного блокаБлок существуетВычислить номер блока основного файлаСчитать блок основного файланачалоконецДанных нетнетда Плотный индексАлгоритм добавления записиПоиск индексного блоканачалоконецЗапись последнего блока основного файлаДобавление записив индексном блокаЗапись индексного блока Плотный индексАлгоритм удаления записиПоиск индексного блокаПометить запись на удаление в блоке началоконецЗапись Плотный индексОценка времени на выполнение основных операций(в максимальном количестве обращений к диску)без Неплотный индексИндексный ключТаблица индексаОсновная таблица Содержит последовательность записей одинаковой длины в отсортированном Неплотный индексОсновная таблица Блок 1Блок 2Блок 3Блок 1Блок 2Таблица индекса Неплотный индексАлгоритм добавления записиПоиск индексного блоканачалоконецЗапись блока основнойобластиЧтение блокаосновной областиДобавление записи в Неплотный индексАлгоритм удаления записиПоиск индексного блоканачалоконецЗапись блока основнойобластиЧтение блокаосновной областиУдаление записи в блоке основной области Неплотный индексОценка времени на выполнение основных операций(в максимальном количестве обращений к диску)где Индекс Б-дерево1 уровень2 уровень3 уровень4 уровень12500 бл.12500/73 = 172 бл.172/73 = 3 Индекс Б-деревоОценка времени на выполнение основных операций(в максимальном количестве обращений к диску)где Инвертируемые спискиИндексный ключИндексная таблица 1-го уровняОсновная таблица Содержит последовательность записей одинаковой длины Инвертируемые спискиОсновная таблицаНом.зап.Блок 1Блок 2Блок 3Блок 4Блок 5Индексная таблица 1-го уровняБлок 1Блок Рекомендации по созданию индексовФакторы, определяющие «хороший» индекс - число столбцов в индексе Оператор создания индексаСУБД всегда создает индекс для первичного ключа таблицыДля создания индексов Оператор создания индексаCREATE [ UNIDUE ] [ CLASTERED | NOCLASTERED ] INDEX Инструмент настройки индексовDatabase Engine Tuning Advisor (DTA)DTA проводит анализ БД по файлу
Слайды презентации

Слайд 2 Понятие индекса
Основная проблема в СУБД – это поиск

Понятие индексаОсновная проблема в СУБД – это поиск нужных данных за

нужных данных за минимальное время
Индекс – это структура данных

для быстрого поиска записей в таблице по значению ключа

Быстрый поиск может быть выполнен в случае, если данные отсортированы.

Сортировка данных в таблице невозможна, т.к. критериев поиска может быть несколько.

Поэтому для таблицы с данными создаются специальные таблицы для каждого критерия поиска, которые называются ИНДЕКСЫ


Слайд 3 Методы организации индекса
Плотным индексом (некластерный индекс)
Индексно-прямой файл
Первичного ключа

Методы организации индексаПлотным индексом (некластерный индекс)Индексно-прямой файлПервичного ключа Методы организации индексовВторичного


Методы организации индексов
Вторичного ключа
Неплотным индексом (кластерный индекс)
Индексно-последователь-ный файл
Б-деревья

Инвертируемые списки
Приведенный

к индексу РК

Слайд 4 Плотный индекс
Индексный ключ












Талица индекса
Основная таблица
Содержит последовательность записей одинаковой

Плотный индексИндексный ключТалица индексаОсновная таблицаСодержит последовательность записей одинаковой длины в произвольном

длины в произвольном порядке.
Содержит индексные записи в отсортированном порядке,

расположенные в блоках, имеющих изначально свободное пространство.

Индексная запись

Номер записи в основном файле

Поиск данных осуществляется по индексному ключу в индексной таблице методом бинарного поиска по блокам.


Слайд 5 Плотный индекс

Блок 1

Блок 2

Блок 3

Блок 4












Таблица индекса
Основная таблица

Плотный индексБлок 1Блок 2Блок 3Блок 4Таблица индексаОсновная таблица

Слайд 6 Плотный индекс
2-я таблица индекса
Основная таблица

Блок 1

Блок 2
Блок

Плотный индекс2-я таблица индексаОсновная таблица Блок 1Блок 2Блок 3

3







Слайд 7 Плотный индекс
Алгоритм поиска данных
Поиск
индексного
блока
Блок
существует
Вычислить номер

Плотный индексАлгоритм поиска данныхПоиск индексного блокаБлок существуетВычислить номер блока основного файлаСчитать блок основного файланачалоконецДанных нетнетда


блока основного файла
Считать блок
основного файла
начало
конец
Данных нет
нет
да


Слайд 8 Плотный индекс
Алгоритм добавления записи
Поиск индексного
блока
начало
конец
Запись последнего
блока

Плотный индексАлгоритм добавления записиПоиск индексного блоканачалоконецЗапись последнего блока основного файлаДобавление записив индексном блокаЗапись индексного блока

основного файла
Добавление записи
в индексном блока
Запись индексного
блока


Слайд 9 Плотный индекс
Алгоритм удаления записи
Поиск индексного
блока
Пометить запись
на

Плотный индексАлгоритм удаления записиПоиск индексного блокаПометить запись на удаление в блоке

удаление в блоке
начало
конец
Запись блока
основного файла
Чтение блока
основного

файла

Удаление записи
в индексном блока

Запись индексного
блока


Слайд 10 Плотный индекс
Оценка времени на выполнение основных операций
(в максимальном

Плотный индексОценка времени на выполнение основных операций(в максимальном количестве обращений к

количестве обращений к диску)
без использования индекса
с использованием индекса
где N

– количество записей в основной таблице;
LB – размер блока;
LZ- длина записи основной таблицы

где LI– длина записи в индексной таблице;


Слайд 11 Неплотный индекс
Индексный ключ












Таблица индекса
Основная таблица
Содержит последовательность записей

Неплотный индексИндексный ключТаблица индексаОсновная таблица Содержит последовательность записей одинаковой длины в

одинаковой длины в отсортированном порядке по индексному ключу, расположенные

в блоках, имеющих изначально свободное пространство.

Содержит индексные записи в отсортированном порядке, расположенные в блоках.

Индексная запись

Номер блока в основном файле

Поиск данных осуществляется по индексному ключу в индексном файле методом бинарного поиска по блокам.


Слайд 12 Неплотный индекс
Основная таблица

Блок 1

Блок 2
Блок 3






Блок 1

Блок

Неплотный индексОсновная таблица Блок 1Блок 2Блок 3Блок 1Блок 2Таблица индекса

2
Таблица индекса


Слайд 13 Неплотный индекс
Алгоритм добавления записи
Поиск индексного
блока
начало
конец
Запись блока основной
области
Чтение

Неплотный индексАлгоритм добавления записиПоиск индексного блоканачалоконецЗапись блока основнойобластиЧтение блокаосновной областиДобавление записи

блока
основной области
Добавление записи
в блоке основной
области
переполнение
нет
да
Перестроение индекса
и

основной области

Слайд 14 Неплотный индекс
Алгоритм удаления записи
Поиск индексного
блока
начало
конец
Запись блока основной
области
Чтение

Неплотный индексАлгоритм удаления записиПоиск индексного блоканачалоконецЗапись блока основнойобластиЧтение блокаосновной областиУдаление записи в блоке основной области

блока
основной области
Удаление записи
в блоке основной
области


Слайд 15 Неплотный индекс
Оценка времени на выполнение основных операций
(в максимальном

Неплотный индексОценка времени на выполнение основных операций(в максимальном количестве обращений к

количестве обращений к диску)
где N – количество записей в

основной таблице;
LB – размер блока;
LZ- длина записи основной таблицы

где LI– длина записи в индексной таблице;


Слайд 16 Индекс Б-дерево


1 уровень
2 уровень
3 уровень
4 уровень
12500 бл.
12500/73 =

Индекс Б-дерево1 уровень2 уровень3 уровень4 уровень12500 бл.12500/73 = 172 бл.172/73 =

172 бл.
172/73 = 3 бл.
1 бл.
100000 записей
Со 2-го уровня

тип индекса – неплотный индекс

Слайд 17 Индекс Б-дерево
Оценка времени на выполнение основных операций
(в максимальном

Индекс Б-деревоОценка времени на выполнение основных операций(в максимальном количестве обращений к

количестве обращений к диску)
где NLI – количество уровней индексов.


Слайд 18 Инвертируемые списки
Индексный ключ












Индексная таблица 1-го уровня
Основная таблица
Содержит

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

последовательность записей одинаковой длины в произвольном порядке.

Содержит индексные записи

в отсортированном порядке, расположенные в блоках, имеющих изначально свободное пространство.

Индексная запись

Номер блока в индексном файле 2-го уровня

Поиск данных осуществляется по индексному ключу в индексной таблице (файле )1-го уровня методом бинарного поиска по блокам, с дальнейшим переходом к цепочке записей, расположенных в индексной таблице (файле) 2-го уровня.

Индексная таблица 2-го уровня

Содержит цепочку номеров записей в отсортированном порядке, расположенных в блоках.

Индексная запись

Номер блока в основном файле


Слайд 19 Инвертируемые списки
Основная таблица


Ном.зап.

Блок 1




Блок 2
Блок 3
Блок 4
Блок 5
Индексная

Инвертируемые спискиОсновная таблицаНом.зап.Блок 1Блок 2Блок 3Блок 4Блок 5Индексная таблица 1-го уровняБлок

таблица 1-го уровня


Блок 1
Блок 2
Индексная таблица

2-го уровня

Слайд 20 Рекомендации по созданию индексов
Факторы, определяющие «хороший» индекс
-

Рекомендации по созданию индексовФакторы, определяющие «хороший» индекс - число столбцов в

число столбцов в индексе не более 4-5 (максимум 16

столбцов общей суммой не более 900 байт))

- в индекс включаются не часто обновляемые столбцы

- создание индексов по FK

- не использовать поиски с предикатом LIKE

- по столбцам, входящих в индекс, не выполняются поиски строк

- слишком много столбцов в индексе

- слишком много индексов

- слишком мало записей в индексируемой таблице

- создание индексов по столбцам из выражения WHERE часто выполняемых запросов

Факторы, определяющие «плохой» индекс


Слайд 21 Оператор создания индекса
СУБД всегда создает индекс для первичного

Оператор создания индексаСУБД всегда создает индекс для первичного ключа таблицыДля создания

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

SQL

CREATE [ UNIQUE ] INDEX имя_индекса
ON имя_таблицы (имя_столбца [ ASC | DESC] [,…])

В каждой СУБД оператор создания индексов содержит дополнительные предложения специфические для каждой СУБД.

Пример. Создать индекс для таблицы ЗАКАЗ по вторичному ключу

CREATE INDEX Заказ_FK_инд
ON Заказ (MFR, КодТов)


Слайд 22 Оператор создания индекса
CREATE [ UNIDUE ]
[ CLASTERED

Оператор создания индексаCREATE [ UNIDUE ] [ CLASTERED | NOCLASTERED ]

| NOCLASTERED ]
INDEX имя_индекса
ON {имя_таблицы | имя_представления} (имя_столбца

[ ASC | DESC] [,…])
WITH
[ < параметры > [ ,...n] ] ]
[ ON имя_файла_группы ]

Оператор для создания индексов в T - SQL

< параметры > - это     { PAD_INDEX |         FILLFACTOR = %запол. |         IGNORE_DUP_KEY |         DROP_EXISTING |     STATISTICS_NORECOMPUTE |     SORT_IN_TEMPDB … }

Создание уникального индекса

Создание неплотного или плотного индекса

По возрастанию или убыванию

Резервирование на каждой странице индекса свободного пространства

Степень заполнения свободного пространства

Поведение сервера при появлении дублей строк

Поведение сервера при наличии индекса


Расположение индекса в файлах ОС БД


  • Имя файла: indeksatsiya-v-subd.pptx
  • Количество просмотров: 148
  • Количество скачиваний: 0