Наряду с перечисленными выше преимуществами, представления обладают и двумя существенными недостатками.
– Производительность. Представление создает лишь видимость существования соответствующей таблицы, и СУБД приходится преобразовывать запрос к представлению в запрос к исходным таблицам. Если представление отображает многотабличный запрос, то простой запрос к представлению становится сложным объединением и на его выполнение может потребоваться много времени.
– Ограничения на обновление. Когда пользователь пытается обновить строки представления, СУБД должна установить их соответствие строкам исходных таблиц, а также обновить последние. Это возможно только для простых представлений (созданных на основе одной таблицы); сложные представления обновлять нельзя, они доступны только для выборки.
Указанные недостатки означают, что не стоит без разбора применять представления вместо исходных таблиц. В каждом конкретном случае необходимо учитывать перечисленные преимущества и недостатки представлений.
|
|
Создание индексов
Общий формат оператора CREATE INDEX
Индекс может быть создан оператором:
CREATE [UNIQUE] [ASC[ENDING]|DESC[ENDING]]
INDEX ИмяИндекса ON ИмяТаблицы (столбец1 [, столбец2...]);
– UNIQUE − требует создания уникального индекса;
– ASC[ENDING] − указывает на необходимость сортировки значений индексных полей по возрастанию (по умолчанию);
– DESC[ENDING] − указывает на необходимость сортировки значений индексных полей по убыванию;
– ИмяИндекса − имя создаваемого индекса;
– ИмяТаблицы − имя таблицы, для которой создается индекс;
– столбецN − имена столбцов, по которым создается индекс.
Ниже дан пример инструкции CREATE INDEX, которая создает индекс для таблицы ZAKAZY на основе столбцов MFR и PRODUCT и содержит требование уникальности для комбинации этих столбцов:
CREATE UNIQUE INDEX ORD_PROD_IDX
ON ZAKAZY (MFR, PRODUCT);