Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4_2 Создание объектов.doc
Скачиваний:
3
Добавлен:
13.11.2019
Размер:
94.21 Кб
Скачать

4.1 Создание индексов

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

Для просмотра индексов, определенных для текущей базы данных, используется команда SHOW INDEX, после которой можно указывать имя таблицы – тогда индексы просматриваются для указанной таблицы. Для просмотра конкретного индекса используют команду SHOW INDEX <имя_индекса>.

InterBase автоматически генерирует индексы системного уровня по столбцу или набору столбцов, когда таблицы определяются с конструкцией ограничения PRIMARY KEY, FOREIGN KEY или UNIQUE.

Команда CREATE INDEX создает индекс на одном или нескольких столбцах таблицы.

CREATE [UNIQUE] [ASC][DESC]

INDEX <имя_индекса> ON <название таблицы> (<список полей>);

ASC и DESC задают способ упорядочения данных по возрастанию или по убыванию соответственно.

UNIQUE – задает режим уникального индекса. При задании такого режима блокируется запись в таблицу строк с одними и теми же значениями в столбцах, образующих индекс.

Пример. Создание уникального индекса по идентификатору студента для таблицы student

CREATE UNIQUE ASC

INDEX OD_IND ON STUDENT (STUDENT_ID);

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

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

4.2 Изменение индекса

Изменение индекса осуществляется командой

ALTER INDEX <имя индекса> {ACTIVE|INACTIVE}

Как видно из синтаксиса, данная команда не предназначена для явного изменения индекса. Она позволяет деактивировать или, наоборот, повторно активировать неактивный индекс. При реактивации индекса осуществляется его перестроение. Это можно использовать для оптимизации индекса, поскольку после большого числа изменений, он может стать несбалансированным.

На использование команды ALTER INDEX накладываются некоторые ограничения:

  • Нельзя выполнить команду ALTER INDEX, если изменяемый индекс используется в данный момент (например командами изменения или выборки);

  • Для выполнения команды необходимо обладать соответствующими правами.

  • Команда ALTER INDEX неприменима к индексам, используемым в качестве ограничений логической целостности, определенным, как UNIQUE, PRIMARY KEY, FOREIGN KEY.

  • ALTER INDEX неприменима для изменения состава столбцов в индексе. Для выполнения данной команды необходимо сначала удалить индекс, а затем создать его снова.

4.3. Восстановление индекса

Синтаксис

SET STATISTICS INDEX <имя индекса>;

В таблицах, где число повторений значений ключа индекса значительно меняется (возрастает или уменьшается), периодическая перекомпиляция индекса может значительно ускорить время обработки. Команда SET STATISTICS повторно вычисляет селективность индекса. Индексная селективность рассчитывается исходя из количества различных значений ключа. Результаты размещаются в памяти и используются оптимизатором InterBase для построения плана обработки запроса. Сам индекс при этом не перестраивается.

4.4 Удаление индекса

Синтаксис:

DROP INDEX <имя индекса>;

Команды удаляет существующий индекс. Индекс не может быть удален, пока он используется. Если индекс был создан автоматически при создании таблицы, данная команда для его удаления неприменима.

5. Исключения

Исключение – это поименованное сообщение об ошибке. Исключение может быть инициировано хранимой процедурой или триггером. Инициировано может быть только предварительно объявленное исключение. Один раз объявленное исключение может быть использовано в любых хранимых процедурах и триггерах. Исключения хранятся в базе данных.

5.1 Создание исключения

Команда

CREATE EXCEPTION <имя> ‘сообщение об ошибке’;

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

Пример.

CREATE EXCEPTION NO_SURNAME ‘Не указана фамилия студента’;

5.2 Изменение исключения

Команда

ALTER EXCEPTION <имя> ‘сообщение об ошибке’;

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

5.3 Удаление исключения

Команда

DROP EXCEPTION <имя>;

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

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