SQL Server 2000. Руководство для ознакомления с продуктом

Индексированные представления


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

SQL Server2000 обеспечивает значительное повышение быстродействия запросов, обращающихся к таким представлениям, благодаря созданию уникальных кластерных индексов этих представлений. Если создается такой индекс, то после построения представления его результирующий набор хранится в базе данных так же, как и таблица с кластерным индексом. Этот метод позволяет эффективно хранить («материализовать») результаты выполнения запроса в базе данных. Оптимизатор запросов сервера SQL Server будет использовать индекс представления в запросах, в которых название этого представления явно не задано в предложении FROM. Повыше­ние эффективности извлечения данных из индексированного представления проявляется и в уже существующих запросах, без необходи­мости их изменения. При работе с определенными типами представлений этот метод может значительно повысить быстродействие.

С точки зрения простоты использования, реализация индексированных представлений в SQL Server 2000 не имеет аналогов в отрасли. Выпускаемые конкурентами продукты, которые имеют встроенные индексированные или «материализованные» представления, для обращения к ним требуют создания специальных запросов. Поэтому уже существующие запросы необходимо обновлять, добавляя к ним подсказки, заставляющие обработчик запросов распознавать эти индексированные или «материализованные» представления. Как уже было упомянуто, реализация индексированных представлений в сервере SQL Server 2000 не требует переписывания запросов, поскольку обработчик запросов SQL Server в подходящих ситуациях автоматически распознает и использует индексированные представления без вмешательства администратора базы данных.



Содержание раздела