Улучшенная масштабируемость и повышенная производительность ядра СУБД
Секционирование данных улучшено благодаря секционированию собственных таблиц и индексов. Повышена степень параллелизма выполнения приложений благодаря применению нового уровня изоляции моментальных снимков и возможности использования в соединении режима MARS.
Улучшение степени маcштабируемости и производительности
Руководства планов
Новая системная хранимая процедура sp_create_plan_guide позволяет оптимизировать производительность запросов путем присоединения к запросам подсказок, если непосредственное изменение текста запроса невозможно или нежелательно. Руководства планов полезно использовать, когда небольшое подмножество запросов в приложении баз данных стороннего разработчика выполняется не так, как ожидалось.
Дополнительные сведения см. в разделе Оптимизация запросов в используемых приложениях с помощью руководств планов.
Уровень изоляции моментальных снимков
Уровень изоляции моментальных снимков реализует поддержку управления версиями строк, предоставляя пользователям возможность просмотра данных в том состоянии, в котором они находились в базе данных до начала текущей транзакции. Транзакция моментальных снимков, за исключением выполнения операции восстановления, не запрашивает блокировку для защиты операций чтения. Изоляция моментальных снимков уменьшает проблемы, связанные с блокировками, в приложениях, предназначенных только для чтения данных.
Дополнительные сведения см. в разделе Уровни изоляции, основанные на управлении версиями строк, в ядре СУБД.
Статистика по коррелируемым столбцам типа datetime
Новый параметр DATE_CORRELATION_OPTIMIZATION инструкции SET базы данных можно включить для улучшения производительности запросов, задающих ограничение на дату в предикате запроса и соединяющих две таблицы, в которых столбцы типа datetime связаны друг с другом.
Дополнительные сведения см. в разделе Оптимизация запросов, которые обращаются к коррелируемым столбцам типа datetime.
Принудительная параметризация
Присвоив значение FORCED новому параметру базы данных PARAMETERIZATION в инструкции SET, можно указать, что все запросы, которые выполняются в базе данных, должны быть параметризованными. Принудительная параметризация может улучшить производительность некоторых баз данных, снижая частоту повторных компиляций запросов.
Дополнительные сведения см. в разделе Принудительная параметризация.
Асинхронное обновление статистики
Для улучшения предсказуемости продолжительности выполнения запросов можно включить новый параметр инструкции базы данных SET, AUTO_UPDATE_STATISTICS_ASYNC. Когда параметр включен, устаревшая статистика ставится в очередь на обновление фоновым рабочим потоком, а запрос, вызывающий обновление статистики, компилируется немедленно, не ожидая обновления статистики.
Дополнительные сведения см. в разделе Статистика индексов.
Материализованные вычисляемые столбцы
Если для вычисляемого столбца задан признак PERSISTED, его значения сохраняются на страницах данных таблицы. Это ускоряет обращение к часто вычисляемым столбцам.
Дополнительные сведения см. в разделе Вычисляемые столбцы.
Режим MARS
В SQL Server 2005 появилась возможность одновременно возвращать наборы результатов нескольких инструкций в одном соединении. В предыдущих версиях SQL Server возвращать результирующий набор для каждого соединения могла одновременно только одна инструкция и нельзя было выполнить новые инструкции до получения всех предыдущих результирующих наборов.
Дополнительные сведения см. в разделе Среда выполнения пакетов и режим MARS.
Включение неключевых столбцов в некластеризованные индексы
Столбцы, не являющиеся частью индексного ключа, можно включать в некластеризованные индексы. Включение неключевых столбцов может ускорить выполнение запросов, которые могут получить все необходимые данные из индекса, не обращаясь к строкам данных. Кроме того, возможно превышение текущих ограничений на размер индекса, равный 16 ключевым столбцам, и на максимальный размер ключа индекса, равный 900 байтам.
Дополнительные сведения см. в разделе Индекс с включенными столбцами.
Гранулярность блокировок индекса
Новые параметры ALLOW_ROW_LOCKS и ALLOW_PAGE_LOCKS инструкций CREATE INDEX и ALTER INDEX позволяют управлять уровнем, на котором происходит блокировка индекса.
Дополнительные сведения см. в разделе Установка параметров индекса.
Индексы по столбцам типа данных XML
Документы и фрагменты XML, которые хранятся в столбцах типа данных XML, могут быть очень большими. Если документы и фрагменты не индексированы, компонент Database Engine должен разбивать их при каждом обращении. Если определить индекс для столбца типа данных XML, компонент Database Engine сможет более эффективно обрабатывать документы и фрагменты.
Дополнительные сведения см. в разделе Индексы для столбцов типа данных xml.
Усовершенствованные индексированные представления
Оптимизатор запросов SQL Server 2005 может сопоставить больше запросов с индексированными представлениями, чем в предыдущих версиях, включая запросы, содержащие скалярные выражения, скалярные статистические функции, определяемые пользователем функции, интервальные выражения и условия эквивалентности.
Дополнительные сведения см. в разделе Конструирование индексированных представлений.
Определения индексированных представлений также могут содержать скалярные статистические выражения и определяемые пользователем функции с некоторыми ограничениями.
Дополнительные сведения см. в разделе Создание индексированных представлений.
Новые подсказки в запросах
Для формирования оптимального плана запросов добавлено четыре подсказки в запросах.
Подсказка RECOMPILE заставляет SQL Server отказаться от выполненного плана, сформированного для запроса, чтобы при следующем выполнении этого же или похожего запроса был создан новый план. Подсказку RECOMPILE полезно использовать для запросов с переменными значениями, которые сильно меняются при каждой компиляции и выполнении. Эту подсказку можно использовать вместо параметра WITH RECOMPILE для создания хранимых процедур, если повторно должна компилироваться только часть запросов внутри хранимой процедуры.
Подсказка OPTIMIZE FOR сообщает SQL Server о необходимости использовать конкретное значение локальной переменной, которое иначе осталось бы неизвестным при компиляции и оптимизации запроса.
Подсказка USE PLAN в запросе сообщает SQL Server о необходимости использовать существующий план выполнения запроса. Подсказку USE PLAN в запросе можно использовать, если использование планов для запросов замедляет их выполнение, но известно, что существуют лучшие планы.
Подсказка PARAMETERIZATION указывает, является ли запрос параметризованным в качестве части компилируемого плана запроса и используется ли внутри руководства плана для перезаписи текущего значения параметра базы данных PARAMETERIZATION инструкции SET.
Дополнительные сведения см. в разделе Подсказка в запросе (Transact-SQL).
Удаление и перестроение больших объектов
При удалении или перестроении таблиц и индексов, занимающих более 128 экстентов, SQL Server 2005 откладывает фактическое освобождение страниц и связанных с ним блокировок до фиксации транзакции. Блокировки предотвращаются благодаря разбиению процесса на логическую и физическую фазы.
Дополнительные сведения см. в разделе Удаление и повторная сборка больших объектов.
Масштабируемые общие базы данных
Эта новая возможность позволяет присоединить базу данных в режиме «только для чтения» к нескольким экземплярам SQL Server 2005 в сети хранения данных (SAN). Масштабируемая общая база данных дает возможность развернуть базу данных с использованием широко распространенного оборудования для серверов отчетов и подключаемых томов и достичь плавного порядка обновления.
Дополнительные сведения см. в разделе Обзор масштабируемых общих баз данных.
См. также
Основные понятия
Улучшения компонента Database Engine