ВУЗ:
Составители:
Рубрика:
Удаление может быть блокировано для родительских таблиц в том случае, если есть дочерние. В
этом случае удаление таблицы разрушит ссылочную целостность базы данных.
7.9 РАБОТА С ИНДЕКСАМИ В ЯЗЫКЕ SQL
Первичный и внешний ключи строятся для обеспечения ссылочной целостности реляционно-
связанных таблиц базы данных. Помимо этого, первичный ключ выполняет функции уникальности
своих значений. Для этих же целей используется и просто уникальный ключ.
Индексы, в отличие от ключей, создаваемые оператором CREATE INDEX, служат для сортировки
данных и оптимизации доступа к ним. В конечном итоге ключи и индексы преобразуются в физиче-
ские индексы – специальный механизм быстрого доступа к данным.
Индексы имеет смысл создавать в следующих случаях:
− часто производится поиск в базе данных;
− часто строится объединение таблиц;
− часто производится сортировка.
Не рекомендуется строить индексы по столбцам или группами столбцов, которые:
− редко используются для поиска;
− часто меняют значение (надо часто обновлять индекс);
− содержат небольшое число вариантов значения.
Синтаксис оператора создания индексов выглядит следующим образом:
CREATE [UNIQUE] [ASС[ENDING] | DESС [ENDING]]
INDEX <имя индекса> ON <имя таблицы> (<столбец1>, …);
где UNIQUE – уникальный индекс, не допускает одинаковых значений;
ASС[ENDING] – сортировка полей индекса по возрастанию (по умолчанию);
DESС[ENDING] – сортировка полей индекса по убыванию.
Пример. Для таблицы prihod создадим индекс в порядке убывания значений date_prihod и
name_det.
CREATE TABLE prihod (
N_prihod INTEGER NOT NULL PRIMARY KEY,
Date_prihod DATE NOT NULL,
Name_det VARCHAR (20) NOT NULL,
Kolvo INTEGER NOT NULL);
CREATE DESC INDEX D_P ON prihod (date_prihod, name_det);
После многократного внесения изменений в таблицу индексы могут быть разбалансированы, так
как "глубина" индекса возрастает. Это приводит к увеличению времени поиска. Поэтому необходи-
мо время от времени: выполнять балансировку индекса оператором ALTER INDEX; переписывать
выбираемость индекса оператором SET STATISTICS; уничтожать и вновь создавать индекс операто-
рами DROP INDEX и CREATE INDEX.
Балансировка индекса производится при помощи команд
ALTER INDEX <имя индекса> DEACTIVATE;
ALTER INDEX <имя индекса> ACTIVATE;
При этом нельзя перестроить индекс, участвующий в запросах, а также индекс, построенный по
первичному или внешнему ключу.
Удалить индекс можно при помощи команды
DROP INDEX <имя индекса>;
7.10 ВЫБОРКА ИНФОРМАЦИИ В ЯЗЫКЕ SQL
Страницы
- « первая
- ‹ предыдущая
- …
- 43
- 44
- 45
- 46
- 47
- …
- следующая ›
- последняя »