Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lekcii_OBD.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4.87 Mб
Скачать

3.1.Типи індексів b-дерева.

Існує два типи індексів B-дерев: кластерні і некластерні індекси.

3.1.1.Кластерні індекси

Кластерний індекс зберігає у своїх вузлах-листах реальні рядки даних у відсортованому порядку, оскільки індекс є впорядкованою структурою.

Мал.13.3. Кластерний індекс

Оскільки дані кластерного індексу зберігаються у вузлах-листах, то вони стають доступними, як тільки знайдено визначений вузол-лист, що скорочує кількість операцій звернення до зовнішньої пам’яті та підвищує продуктивність окремих операцій і системи в цілому.

Ще одною перевагою кластерних індексів є те, що дані , що зчитуючись, видаються у відсортованому по індексу вигляді.

Наприклад, якщо кластерний індекс створений по стовпчиках країна,область, місто і в запиті відбувається вибір даних для значення Україна стовпчика країна, те результуючий набір буде відсортований по стовпчиках область,місто у тім порядку, як це визначено індексом.

Якщо відомо, що дані після зчитування потрібно видавати у визначеному порядку, то використання кластерного індексу дозволяє, уникнути сортування.

Недоліком використання кластерного індексу є те, що доступ до таблиці завжди відбувається через індекс, що може приводити до додаткового навантаження на систему.

Кожен доступ до даних починається з кореневого вузла і проходить через індекс, поки не буде досягнуто вузол-лист, що містить потрібні дані. Якщо через великий обсяг даних створюється багато вузлів-листів, то кількість рівнів індексу, необхідних для підтримки великого числа вузлів-листів, теж стає великим, що збільшує кількість операцій звернення до ЗП, необхідних для переміщення від кореневого вузла до вузла-листа.

Оскільки в кластерному індексі зберігаються реальні дані, то не можна створити в таблиці більш одного кластерного індексу.

З іншого боку, можна створити некластерний індекс в кластерній таблиці. (Кластерна таблиця – це таблиця, що містить кластерний індекс).

Необхідно створювати кластерний індекс для поля, до якого найбільш часто здійснюється доступ: це дасть найбільшу імовірність доступу до даних через кластерний індекс і, тим самим, найбільш високу продуктивність.

3.1.2.Некластерні індекси

Н а відміну від кластерного індексу некластерний індекс не містить реальних даних таблиці у своїх вузлах-листах. Вузли-листи можуть містити один із двох типів інформації про місце розташування рядків даних. По-перше, якщо по таблиці не створений кластерний індекс, то некластерні індекси по цій таблиці зберігають у своїх вузлах-листах ідентифікатори рядків Row ID. Кожен ідентифікатор рядка вказує на реальний рядок даних у таблиці. Ідентифікатор рядка – це значення, що включає в себе номер файла БД (у багато файлових БД), номер сторінки і місце розташування рядка на цій сторінці.

Рис.13.4.Некластерний індекс по таблиці, що не має кластерного індекса.

Якщо по таблиці створений кластерний індекс, то некластерні індекси будуть містити у вузлі-листі значення ключа кластерного індексу для цих даних (мал. 13.5).

При досягненні вузла-листа некластерного індексу значення, що знаходиться в ньому, кластерного ключа використовується для пошуку в кластерному індексі, якому відповідає вузол-лист якого містить потрібний запис даних.

Кожна таблиця може мати тільки один кластерний індекс і до n - некластерних (наприклад 249 некластерних індексів для таблиці MS SQL Server 2000).

Р ис.13.5.Некластерний індекс по таблиці, що має кластеризований індекс.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]