- •Введение
- •1.5. Задание
- •1.6. Ход работы
- •1.6.1. Создание базы данных
- •1.6.2. Регистрация базы данных
- •1.6.3. Подключение к базе данных
- •1.6.4. Удаление базы данных
- •1.6.5. Извлечение метаданных
- •1.6.6. Резервное копирование и восстановление
- •1.7. Отчет о выполнении работы
- •1.8. Контрольные вопросы
- •2.4.2. Домены (Domains)
- •2.5. Задание
- •2.6. Ход работы
- •2.7. Отчет о выполнении работы
- •2.8. Контрольные вопросы
- •3.4.2. Индексы
- •3.5. Задание
- •3.6. Ход работы
- •3.7. Отчет о выполнении работы
- •3.8. Контрольные вопросы
- •4.4.1. Ограничение первичного ключа (Primary key)
- •4.4.2. Ограничения уникальности (Unique)
- •4.4.3. Ограничения внешнего ключа (Foreign keys)
- •4.4.4. Контрольные ограничения (Checks)
- •4.5. Задание
- •4.6. Ход работы
- •4.7. Отчет о выполнении работы
- •4.8. Контрольные вопросы
- •5.4.2. Бизнес-правила
- •5.4.3. Триггеры (Triggers)
- •5.4.4. Исключения (Exceptions) и обработка ошибок
- •5.6. Ход работы
- •5.7. Отчет о выполнении работы
- •5.8. Контрольные вопросы
- •6.4.2. Удаление существующих данных
- •6.4.3. Обновление существующих данных
- •6.5. Задание
- •6.6. Ход работы
- •6.7. Отчет о выполнении работы
- •6.8. Контрольные вопросы
- •7.5. Задание
- •7.6. Ход работы
- •7.7. Отчет о выполнении работы
- •7.8. Контрольные вопросы
- •8.4.2. Модифицируемые представления
- •8.5. Задание
- •8.6. Ход работы
- •8.7. Отчет о выполнении работы
- •8.8. Контрольные вопросы
- •9.4.2. Виды хранимых процедур в InterBase
- •Returns (
- •9.5. Задание
- •9.6. Ход работы
- •9.7. Отчет о выполнении работы
- •9.8. Контрольные вопросы
- •10.4.2. Создание динамической библиотеки с udf
- •Exports
- •Interface
- •10.4.4. Использование udf в базе данных
- •10.5. Задание
- •10.6. Ход работы
- •10.8. Контрольные вопросы
- •11.4.4. Права
-
3.4.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 Имя_Индекса;