Исправление: При запуске запроса, использующего табличная подсказка NOLOCK для получения большого двоичного ОБЪЕКТА данных в SQL Server 2005 или SQL Server 2008, запрос выполняется очень медленно

Переводы статьи Переводы статьи
Код статьи: 961049 - Vizualiza?i produsele pentru care se aplic? acest articol.
Корпорация Майкрософт распространяет исправления Microsoft SQL Server 2005 файл с исправлениями. Так как исправления являются накопительными, каждый новый выпуск содержит все исправления, и все исправления, входившие в состав предыдущих SQL Server 2005 исправление выпуска.
Корпорация Майкрософт распространяет исправления Microsoft SQL Server 2008 файл с исправлениями. Так как исправления являются накопительными, каждый новый выпуск содержит все исправления, и все исправления, входившие в состав предыдущих SQL Server 2008 исправление выпуска.
Развернуть все | Свернуть все

В этой статье

Проблема

Имеется запрос, использующий табличная подсказка NOLOCK, в Microsoft SQL Server 2005 или Microsoft SQL Server 2008. Запрос считывает данные больших двоичных объектов (BLOB), одного из следующих типов данных из большой таблицы:
  • Тип данных текст
  • Тип данных nText
  • Тип данных Image
При выполнении запроса, запрос выполняется очень медленно. При проверке активности диска, который создает запрос, можно заметить, что очень большое количество операций логического считывания.

Примечание.Для отображения действий диска, выполните запрос с помощью предложения SET STATISTICS IO ON.

Причина

Запрос, который используется табличная подсказка NOLOCK считывает данные BLOB, SQL Server проверяет, что каждая страница большого двоичного ОБЪЕКТА выделяется, просмотрев соответствующие карты распределения индекса (IAM). IAM, является связанным списком выделения страниц. Все IAM-страница может содержать около 4 ГБ данных (размер страницы 8 КБ * 8 страниц * 64 000 экстентов). Если объект имеет большой размер, операция проверки может привести к чрезмерное количество логических считываний.

Например у вас есть большой объект, сопоставленный файловую группу. Общий размер файлов в файловой группе, составляет 700 ГБ. В этом случае IAM для объекта может содержать до 175 страниц. Если теперь запрос выполняется для данного объекта с помощью табличная подсказка NOLOCK, и запрос обращается к 10 000 страниц BLOB, число логических операций чтения, которые относятся к IAM-страницы будет 175 * 10000 = 1,750,000, в худшем случае. Если SQL Server находит соответствующий IAM-страницы путем обхода части связанного списка, Среднее число логических операций чтения, которые относятся к IAM-страницы будет примерно 1,750,000 / 2 = 875,000. Это слишком большой нагрузки вызывают для запроса к 10 000 страниц с BLOB.

Решение

Сведения о накопительном обновлении для SQL Server 2005

Исправление этой уязвимости первого выпуска накопительного обновления 3 для SQL Server 2005 с пакетом обновления 3. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления для SQL Server 2005 щелкните следующий номер статьи базы знаний Майкрософт:
967909Накопительный пакет обновления 3 для SQL Server 2005 с пакетом обновления 3
Примечание.Поскольку сборки являются накопительными, каждый новый выпуск исправление содержит все исправления, и все исправления, входившие в состав предыдущих SQL Server 2005 исправление выпуска. Рекомендуется, чтобы учесть применение последний выпуск исправления, содержащего это исправление. Для получения дополнительных сведений обратитесь к следующей статье Базы Знаний Майкрософт::
960598SQL Server 2005 собирает, выпущенных после выпуска SQL Server 2005 с пакетом обновления 3

Сведения о накопительном обновлении для SQL Server 2008

Исправление этой уязвимости первого выпуска накопительного обновления 5 для SQL Server 2008. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления для SQL Server 2008 щелкните следующий номер статьи базы знаний Майкрософт:
969531Накопительный пакет обновления 5 для SQL Server 2008
Примечание.Поскольку сборки являются накопительными, каждый новый выпуск исправление содержит все исправления, и все исправления, входившие в состав предыдущих SQL Server 2008 исправление выпуска. Рекомендуется, чтобы учесть применение последний выпуск исправления, содержащего это исправление. Для получения дополнительных сведений обратитесь к следующей статье Базы Знаний Майкрософт::
956909SQL Server 2008 построений, которые были выпущены после выхода SQL Server 2008

Статус

Корпорация Майкрософт подтверждает, что это проблема в продуктах Майкрософт, перечисленных в разделе «Применяется к»..

Дополнительная информация

Исправление, устраняющее эту проблему использует кэш IAM для быстрого определения ли фактически выделяется на странице большого двоичного ОБЪЕКТА.

Для получения дополнительных сведений об изменении файлов, а также сведения о требованиях для применения накопительного обновления для пакета, который содержит данное исправление, описанное в данной статье базы знаний Майкрософт щелкните следующий номер статьи базы знаний Майкрософт:
967909Накопительный пакет обновления 3 для SQL Server 2005 с пакетом обновления 3
Для получения дополнительных сведений об изменении файлов, а также сведения о требованиях для применения накопительного обновления для пакета, который содержит данное исправление, описанное в данной статье базы знаний Майкрософт щелкните следующий номер статьи базы знаний Майкрософт:
969531Накопительный пакет обновления 5 для SQL Server 2008

Ссылки

Для получения дополнительных сведений о списке построений, которые будут доступны после SQL Server 2005 с пакетом обновления 3 щелкните следующий номер статьи базы знаний Майкрософт:
960598SQL Server 2005 собирает, выпущенных после выпуска SQL Server 2005 с пакетом обновления 3
Для получения дополнительных сведений о списке построений, которые будут доступны после SQL Server 2008 щелкните следующий номер статьи базы знаний Майкрософт:
956909SQL Server 2008 построений, которые были выпущены после выхода SQL Server 2008
Для получения дополнительных сведений о последовательный модели обслуживания для SQL Server щелкните следующий номер статьи базы знаний Майкрософт:
935897Последовательный модели обслуживания доступна группа разработчиков SQL Server для предоставления исправления для устранения неполадок
Для получения дополнительных сведений о схеме именования для обновления SQL Server щелкните следующий номер статьи базы знаний Майкрософт:
822499Новая схема присвоения имен пакетам обновлений программного обеспечения Microsoft SQL Server
Дополнительные сведения о терминах, используемых при описании обновлений программного обеспечения, см. в следующей статье базы знаний Майкрософт::
824684Стандартные термины, используемые при описании обновлений программных продуктов Майкрософт

Свойства

Код статьи: 961049 - Последний отзыв: 29 ноября 2010 г. - Revision: 2.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Workgroup
Ключевые слова: 
kbsurveynew kbfix kbqfe kbexpertiseadvanced kbmt KB961049 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:961049

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com