ИСПРАВЛЕНИЕ: Производительность может снизиться при выполнении запроса, что использует sp_cursoropen хранимая процедура после обновления до SQL Server 2005 до 2008 SQL Server или SQL Server 2008 R2 или 2012 SQL Server

Переводы статьи Переводы статьи
Код статьи: 2649913 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Корпорация Майкрософт распространяет пакет обновления 1 (SP1) для Microsoft SQL Server 2008 R2 или Microsoft SQL Server 2012 исправления в один загружаемый файл. Так как накопительные исправления, каждый выпуск содержит все исправления и обновления безопасности, которые были включены в предыдущие SQL Server 2008 R2 пакетом обновления 1 (SP1) или Microsoft SQL Server 2012 выпуска обновления.

Проблема

Рассмотрим следующий сценарий:
  • Обновление от 2005 Microsoft SQL Server 2008 SQL Server Microsoft или Microsoft SQL Server 2008 R2 или 2012 Microsoft SQL Server.
  • Запустите запрос, использующий sp_cursoropen Хранимая процедура, а затем укажите количество строк параметр выборки первые несколько строк таблицы.
В этом случае производительность может быть медленнее, чем при выполнении того же запроса в SQL Server 2005.

Причина

Эта проблема возникает, потому что оптимизатор запросов использует статический курсор план вместо плана динамического курсора. Статический курсор плана SQL Server выбирает все строки и вставляет их в рабочую таблицу курсора. Тем не менее для динамического курсора плана SQL Server извлекает только строки, которые необходимы.

Решение

Накопительное обновление информации

SQL Server 2012

Исправление этой уязвимости первого выпуска в накопительное обновление 1 для SQL Server 2012. Дополнительные сведения о этот накопительный пакет обновления щелкните следующий номер статьи базы знаний Майкрософт:
2679368 Накопительный пакет обновления 1 для SQL Server 2012
Примечание Поскольку сборки являются накопительными, каждый новый выпуск исправлений содержит все исправления и исправить все исправления безопасности, которые были включены в предыдущие 2012 SQL Server выпуска. Корпорация Майкрософт рекомендует рассмотреть применение самую последнюю версию исправления, содержащего это исправление. Для получения дополнительных сведений щелкните следующий номер статьи базы знаний Майкрософт:
2692828 Строит 2012 SQL Server, выпущенных после 2012 SQL Server
Необходимо установить исправление SQL Server 2012 установки 2012 SQL Server.

Накопительный пакет обновления 5 для SQL Server 2008 R2 SP1

После установки этого исправления необходимо Включите флаг трассировки 4199.

Исправление этой уязвимости первого выпуска накопительного обновления 5. Дополнительные сведения о том, как получить этот накопительный пакет обновления для SQL Server 2008 R2 SP1 щелкните следующий номер статьи базы знаний Майкрософт:
2659694 Накопительный пакет обновления 5 для SQL Server 2008 R2 SP1
Примечание Поскольку сборки являются накопительными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущие SQL Server 2008 R2 SP1 исправления выпуска. Мы рекомендуем рассмотреть применение самую последнюю версию исправления, содержащего это исправление. Для получения дополнительных сведений щелкните следующий номер статьи базы знаний Майкрософт:
2567616 SQL Server 2008 R2 построений, выпущенных после пакета обновления 1 2008 R2 SQL Server

Временное решение

Чтобы обойти эту проблему, добавьте подсказку запроса БЫСТРОГО запроса.

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

Дополнительные сведения об использовании подсказки в запросе посетите следующий веб-узел MSDN:
Общие сведения об использовании подсказок в запросе
Дополнительные сведения о флаге трассировки 4199 посетите следующий веб-узел:

Статус

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

Свойства

Код статьи: 2649913 - Последний отзыв: 12 апреля 2012 г. - Revision: 1.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Express
  • Microsoft SQL Server 2008 R2 Express with Advanced Services
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Standard Edition for Small Business
  • Microsoft SQL Server 2008 R2 Workgroup
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Express with Advanced Services
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Express
  • Microsoft SQL Server 2012 Standard
Ключевые слова: 
kbqfe kbfix kbexpertiseadvanced kbsurveynew kbmt KB2649913 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:2649913

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

 

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