Исправление: Использование памяти скомпилированный план запроса может неожиданно увеличиться в SQL Server 2005

Переводы статьи Переводы статьи
Код статьи: 919636 - Vizualiza?i produsele pentru care se aplic? acest articol.
Ошибка #: 810 (исправление SQL)
Внимание
Корпорация Майкрософт распространяет исправления Microsoft SQL Server 2005 файл с исправлениями. Так как исправления являются накопительными, каждый новый выпуск содержит все исправления, и все исправления, входившие в состав предыдущих SQL Server 2005 исправление выпуска.
Развернуть все | Свернуть все
Далее в статье о выпуске исправлений:
  • Проблем, устраняемых этим пакетом исправлений
  • необходимые условия для установки исправления;
  • Сведения о необходимость перезагрузки компьютера после установки пакета исправлений
  • Сведения о ли исправление заменяется на любой другой пакет исправлений
  • Сведения о ли внесены изменения в реестр
  • Файлы, содержащиеся в пакете исправлений

Проблема

При проверке скомпилированный план запроса из запроса, можно заметить, что использование памяти плана запроса компилируемых неожиданно может привести к увеличению в SQL Server 2005 по сравнению с Microsoft SQL Server 2000.

Такое поведение наблюдается, если выполняется одно из следующих условий:
  • Условие 1.:Запрос ссылается на таблицу, которая использует вычисляемые столбцы.
  • Условие 2:Запрос содержит строковые операции между значенияnvarcharстолбцы и строки ANSI. Например строка операции сравнивает значенияnvarcharстолбцов в строки ANSI.
  • Условие 3:Запрос содержит ссылки на таблицу с вычисляемым столбцом. На основе вычисляемых столбцовnvarcharстолбец. Однако столбец компьютер использует ANSI строковые константы в выражении.
Условия, 2 и 3 может привести к значительно увеличить использование памяти скомпилированный план запроса.

Например, у вас есть таблицы, имеющейnvarcharстолбец. Имя таблицы — MyTable, а такжеnvarcharИмя столбца является MyCol. Затем определить запрос, используя следующий синтаксис:
SELECT CASE MyCol
          WHEN 'Value1' THEN 'NewValue1'
          WHEN 'Value2' THEN 'NewValue2'
          ELSE MyCol
       END
FROM MyTable
В данном примере строки "Значение1", "Значение2", "NewValue1" и "NewValue2" являются строки ANSI. Значения MyColnvarcharстолбец сначала сравниваются со строки ANSI "Значение1" и "Значение2". После этого соответствующее значение "NewValue1", "NewValue2" выбранные строки ANSI и исходное значение столбца MyCol.

Скомпилированный план использования памяти можно просмотреть, просмотрpagesusedстолбец таблицы системы sys.syscacheobjects или динамическое административное представление sys.dm_exec_cached_plans.

Это увеличение размера компилируемых плане также может привести к увеличение времени ожидания для RESOURCE_SEMAPHORE_QUERY_COMPILE типа ожидания.

Решение

Вам доступно исправление от корпорации Майкрософт.. Это исправление предназначено для устранения проблемы, описанной в этой статье.. Его необходимо применять только в тех системах, в которых наблюдается данная проблема.. Исправление может проходить дополнительное тестирование.. Таким образом эта проблема не является постоянной для вас, мы рекомендуем дождаться следующего автоматического обновления программного обеспечения, содержащего это исправление..

Если исправление доступно для загрузки, имеется раздел «Доступные загрузки» в верхней части этой статьи базы знаний.. Если этот раздел не отображается, обратитесь в Службу поддержки клиентов Microsoft для получения исправления..

Примечание.Другие проблемы или если требуется устранить неполадки, возможно, потребуется создать отдельный запрос. Дополнительные услуги по технической поддержке, не связанные с данным исправлением, оплачиваются вами дополнительно.. Полный список телефонов поддержки и обслуживания клиентов Microsoft или информацию по созданию отдельного запроса на обслуживание вы можете найти на веб-сайте Майкрософт::
http://support.microsoft.com/contactus/?ws=support
Примечание.В форме "Исправление доступно для загрузки" отображаются языки, для которых доступно исправление. Если язык не отображается, это значит, что исправление не доступно для данного языка..

Предвартельные требования

Требуется SQL Server 2005 с пакетом обновления 1 (SP1) для установки этого исправления.Для получения дополнительных сведений о том, как получить SQL Server 2005 с пакетом обновления 1 (SP1) щелкните следующий номер статьи базы знаний Майкрософт:
913089Получение последнего пакета обновления для SQL Server 2005

Сведения о перезагрузке компьютера

После установки исправления перезагружать компьютер не требуется.. Тем не менее если вы уже подвержены данной проблеме, выполните действия, описанные в разделе «Workground» после установки данного исправления, чтобы восстановить файлы базы данных в исправном состоянии.

Сведения о внесении изменений в системный реестр

Нет изменений в реестр.

Сведения о файле исправления

Данное исправление содержит только те файлы, необходимые для устранения описанных в этой статье перечислены. Это исправление может не содержать всех файлов, которые необходимы для полного обновления продукта до последней сборки.

Английская версия исправления содержит версии файлов, приведенные в следующей таблице (или более поздние).. Дата и время для файлов указаны во всеобщем скоординированном времени (UTC).. При просмотре сведений о файле, время изменяется на местное.. Чтобы узнать разницу между временем по Гринвичу и местным временем,Часовой поясна вкладке элемента «Дата и время» панели управления.
SQL Server 2005 32-разрядная версия
Свернуть эту таблицуРазвернуть эту таблицу
Имя файлаВерсия файлаРазмер файла:Дата:времяПлатформа
Microsoft.SqlServer.sqlenum.dll9.0.2164.0908,06414 Июня 2006 г.12: 32X86
Microsoft.SqlServer.mgdsqldumper.dll2005.90.2164.075,55214 Июня 2006 г.12: 29X86
Msgprox.dll2005.90.2164.0197,92014 Июня 2006 г.12: 29X86
Replprov.dll2005.90.2164.0547,61614 Июня 2006 г.12: 31X86
Replrec.dll2005.90.2164.0782,11214 Июня 2006 г.12: 32X86
Msmdlocal.dll9.0.2164.015,661,85614 Июня 2006 г.12: 33X86
SqlAccess.dll2005.90.2164.0347,93614 Июня 2006 г.12: 31X86
Sqlservr.exe2005.90.2164.028,950,87214 Июня 2006 г.12: 33X86
SQL Server 2005 x 64-разрядная версия
Свернуть эту таблицуРазвернуть эту таблицу
Имя файлаВерсия файлаРазмер файла:Дата:времяПлатформа
Microsoft.SqlServer.sqlenum.dll9.0.2164.0875,29614 Июня 2006 г.13: 12X86
Microsoft.SqlServer.mgdsqldumper.dll2005.90.2164.091,42414 Июня 2006 г.12: 29X64
Msgprox.dll2005.90.2164.0259,36014 Июня 2006 г.13: 10X64
Replprov.dll2005.90.2164.0745,24814 Июня 2006 г.13: 12X64
Replrec.dll2005.90.2164.01,008,41614 Июня 2006 г.13: 12X64
Msmdlocal.dll9.0.2164.015,661,85614 Июня 2006 г.12: 33X86
SqlAccess.dll2005.90.2164.0355,10414 Июня 2006 г.13: 11X86
Sqlservr.exe2005.90.2164.039,251,23214 Июня 2006 г.13: 13X64
Версии SQL Server 2005 Itanium
Свернуть эту таблицуРазвернуть эту таблицу
Имя файлаВерсия файлаРазмер файла:Дата:времяПлатформа
Microsoft.SqlServer.sqlenum.dll9.0.2164.0875,29614 Июня 2006 г.12: 29X86
Microsoft.SqlServer.mgdsqldumper.dll2005.90.2164.0163,10414 Июня 2006 г.12: 29IA-64
Msgprox.dll2005.90.2164.0542,49614 Июня 2006 г.12: 28IA-64
Msmdlocal.dll9.0.2164.048,733,98414 Июня 2006 г.12: 30IA-64
Replprov.dll2005.90.2164.01,617,18414 Июня 2006 г.12: 29IA-64
Replrec.dll2005.90.2164.02,141,47214 Июня 2006 г.12: 29IA-64
SqlAccess.dll2005.90.2164.0349,47214 Июня 2006 г.12: 28X86
Sqlservr.exe2005.90.2164.072,208,67214 Июня 2006 г.12: 30IA-64

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

Чтобы обойти эту проблему, добавьте прописная буква «N» в начале всех строк, которые находятся в контексте проблемы. Можно изменить пример, в котором описана в разделе «Проблема», используя следующий синтаксис:

SELECT CASE MyCol WHEN N'Value1' THEN N'NewValue1' WHEN N'Value2' THEN N'NewValue2' ELSE MyCol END FROM MyTable

Статус

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

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

Скомпилированный план использования памяти можно просмотреть, просмотрpagesusedстолбец таблицы системы sys.syscacheobjects или динамическое административное представление sys.dm_exec_cached_plans.

Для получения дополнительных сведений о системной таблице sys.syscacheobjects посетите следующий веб-узел Microsoft Developer Network (MSDN):
http://msdn2.Microsoft.com/en-us/library/ms187815.aspx
Для получения дополнительных сведений о динамическое административное представление sys.dm_exec_cached_plans посетите веб-узлу MSDN:
http://MSDN.Microsoft.com/en-us/library/ms187404.aspx
Для получения дополнительных сведений о схеме именования для обновления Microsoft SQL Server щелкните следующий номер статьи базы знаний Майкрософт:
822499Новая схема присвоения имен пакетам обновлений программного обеспечения Microsoft SQL Server
Дополнительные сведения о терминах, используемых при описании обновлений программного обеспечения, см. в следующей статье базы знаний Майкрософт::
824684Стандартные термины, используемые при описании обновлений программных продуктов Майкрософт
Примечание. Это ЭКСПРЕСС-ПУБЛИКАЦИЯ, подготовленная непосредственно службой технической поддержки Майкрософт . Сведения, содержащиеся в данном документе, предоставлены в качестве отклика на возникшие проблемы. Из-за срочности в материалах могут быть опечатки, и в любое время и без уведомления в них могут быть внесены изменения. Чтобы получить дополнительные сведения, см. Условия использования.

Свойства

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

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

 

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