Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ по ОБД ИТП 2 сем.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
6 Мб
Скачать
☆

1.2 Індекси

InterBase (як і інші реляційні СУБД) зберігає записи в таблицях в неврегульованому вигляді. Записи, що додаються в таблицю одна за одною, не обов'язково виявляться "поруч". Дані, які відбираються з таблиці, також не мають якого-небудь порядку, крім того, який явно вказаний в запиті на вибірку інформації.

Індекс – це впорядкований покажчик на записі таблиці. Індекс складається з пар значень "Значення поля" – "фізичне розташування запису", тому за значенням поля (або полів), що входить в індекс, за допомогою індексу можна швидко знайти місце в таблиці, де розташовується запис, що містить це значення.

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

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

Використання індексів є два негативні наслідки:

1. Для індексів додатково витрачається дисковий простір.

2. Наявність індексів уповільнює модифікацію даних в таблиці.

Індекси створюються за допомогою команди CREATE INDEX.

Синтаксис оператора створення індексу:

CREATE [UNIQUE] [ASC[ENDING]| DESC[ENGING]] INDEX

І’мя_Індексу ON Таблиця(Поле [, Поле ...]);

Індекс може бути таким, що або зростає (ASC[ENDING]), або убуває (DESC[ENGING]). Якщо при створенні індексу вказати UNIQUE, то можна буде заносити в таблицю лише унікальні значення індексованих полів.

Приклад створення індексу:

-- індекс по прізвищу людини:

CREATE INDEX Index_Person_Name ON Person(Pr_LastName);

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

Аби перестворювати індекс, можна використовувати наступні способи:

1. Перебудувати індекс за допомогою команди ALTER INDEX. Для цього треба послідовно виконати дві команди:

ALTER INDEX Імя_Індекса INACTIVE;

ALTER INDEX Імя_Індекса ACTIVE;

2. Видалити індекс (командою DROP INDEX), а потім повторно створити його.

3. Виконати резервне копіювання і відновлення бази даних.

Індекс характеризується числом в межах від 0 до 1, яке називається статистикою. Це число залежить від числа різних значень поля в таблиці. Оптимізатор запитів InterBase використовує це число для визначення ефективності вживання індексу в запиті. Статистика визначається при створенні і перебудові індексу, а також по команді перерахунку статистики. Коли число записів в таблиці змінюється, перерахунок статистики може поліпшити продуктивність. Перерахунок статистики не перебудовує індекс, а лише визначає статистику.

Команда перерахунку статистики індексу:

SET STATISTICS INDEX І’мя_Індексу; 25

2 Хід роботи

Для створення таблиці в діалоговому режимі, натискуйте у вікні "Database Explorer" праву клавішу миші на вузлі "Tables" або на одній з наявних таблиць і в меню, що відкрилося, виберіть команду "New Table. (Ctrl+N)". В результаті відкриється вікно створення таблиці (Рисунок 3.1).

Рисунок 3.1 – Вікно формування таблиці в діалоговому режимі

У верхній частині цього вікна вводиться ім'я створюваної таблиці (у приведеному випадку – "TESTDIALOG").

Сітка в середній частині вікна містить зведення про поля таблиці. Аби додати поле в таблицю, слід натискувати клавішу [Insert] або [Стрілка вниз]. У колонці "Field Name" вводиться ім'я створюваного поля, в колонці "Field Type" вибирається тип даних, або в колонці "Domain"– створений раніше домен. Для текстових полів (CHAR і VARCHAR) в колонці "Size" вводиться розмір поля. Аби задати полю обмеження "NOT NULL" досить встановити прапорець в колонці "Not Null".

У нижній частині вікна на вкладці "Field description" можна вводити для кожного поля пояснюючі коментарі.

Після введення дані про всі поля таблиці слід натискувати кнопку [Compile] (Ctrl+F9). В результаті цього відкриється діалогове вікно "Creating Table Імя_Табліци." (Рисунок 3.2), у якому треба підтвердити (кнопка [Commit]) або відмінити (кнопка [Rollback]) виконання операції.

Якщо закрити це діалогове вікно кнопкою [Commit], то у вікні, показаному на рисунку 3.3 з'являться додаткові вкладки і воно прийме наступний вигляд.

Тепер з'явиться можливість додати до таблиці індекси. Для цього перейдіть на вкладку "Indices".

Сітка на цій вкладці дозволяє переглядати, редагувати, створювати і видаляти індекси.

Рисунок 3.2 – Діалогове вікно створення таблиці

Рисунок 3.3 – Вікно перегляду і редагування таблиці

Для створення індексу виконаєте наступні дії:

1. Натискуйте в цій сітці клавішу [Insert]. В результаті буде вставлений новий рядок.

2. Задайте в колонці "Index" ім'я індексу.

3. Натискуйте кнопку в колонці "On field". В результаті відкриється вікно з двома списками (Рисунок 3.4). У лівому списку "Available fields" знаходитимуться поля, які можна додати до індексу, в правому списку "Included fields" знаходитимуться поля, які вже включені в список. Для формування переліку полів, які входитимуть в індекс, перемістите потрібні поля з лівого списку в правий.

4. Якщо створюється унікальний індекс, встановите прапорець в колонці "Unique".

5. Аби активізувати індекс встановите прапорець в колонці "Active".

6. У колонці "Sorting" виберіть спосіб сортування.

7. Аби створити індекс натискуйте кнопку [Compile] (Ctrl+F9).

8. В результаті відкриється діалогове вікно, в якому треба підтвердити (кнопка [Commit]) або відмінити (кнопка [Rollback]) виконання операції.

Рисунок 3.4 – Вікно перегляду і редагування індексів

Після створення індексу його можна у будь-який момент змінити, якщо змінити параметри індексу і знову натискувати кнопку [Compile].