В настоящее время вы работаете в автономном режиме; ожидается повторное подключение к Интернету

Исправление: План запроса для хранимой процедуры не кэшируются, если хранимая процедура использует переменную типа BLOB и переменная используется в строковой функции в Microsoft SQL Server 2008 или в Microsoft SQL Server 2008 R2

ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.

Эта статья на английском языке:2380435
Корпорация Майкрософт распространяет Microsoft SQL Server 2008 и Microsoft SQL Server 2008 R2 исправления файл с исправлениями. Так как исправления являются накопительными, каждый новый выпуск содержит все исправления, и все исправления, входившие в состав предыдущих SQL Server 2008 и SQL Server 2008 R2 исправление выпуска.
Проблема
Рассмотрим описанную ниже ситуацию.:
  • Создание хранимой процедуры в Microsoft SQL Server 2008 или в Microsoft SQL Server 2008 R2.
  • Хранимая процедура использует большой двоичный объект (BLOB) переменной.
  • Строковые функции используется переменная типа BLOB.
  • Выполнение хранимой процедуры.
В этом случае план запроса для хранимой процедуры не кэшируется.
Решение

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

Пакет обновления 1 для SQL Server 2008

Исправление, устраняющее эту проблему, сначала было выпущено в 10 накопительного обновления для SQL Server 2008 с пакетом обновления 1 (SP1). Для получения дополнительных сведений о этот накопительный пакет обновления щелкните следующий номер статьи базы знаний Майкрософт:
2279604Накопительный пакет обновления 10 для SQL Server 2008 с пакетом обновления 1 (SP1)
Примечание.Поскольку сборки являются накопительными, каждый новый выпуск исправление содержит все исправления, и все исправления, входившие в состав предыдущих SQL Server 2008 исправление выпуска. Корпорация Майкрософт рекомендует, чтобы учесть применение последний выпуск исправления, содержащего это исправление. Для получения дополнительных сведений обратитесь к следующей статье Базы Знаний Майкрософт::
970365SQL Server 2008 выполняет построение, выпущенных после пакета обновления 1 для SQL Server 2008
Microsoft SQL Server 2008 исправлениях создаются для определенных пакетов обновления для SQL Server. Необходимо применить исправление SQL Server 2008 с пакетом обновления 1 (SP1) для установки SQL Server 2008 с пакетом обновления 1 (SP1). По умолчанию все исправления, входящие в пакет обновления SQL Server включено в следующий пакет обновления для SQL Server.

SQL Server 2008 с пакетом обновления 2

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

SQL Server 2008 R2

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

Статус
Корпорация Майкрософт подтверждает, что это проблема в продуктах Майкрософт, перечисленных в разделе «Применяется к»..
Дополнительная информация
Чтобы воспроизвести эту проблему, выполните следующие действия.
  1. Выполните следующий код для создания двух хранимых процедур («p_test1» и «p_test2»). "P_test1" используется переменная типа BLOB, а «p_test2» использует тип nvarchar(100).
    use tempdbgoif OBJECT_ID('p_test1') is not null drop proc p_test1if OBJECT_ID('p_test2') is not null drop proc p_test2gocreate proc p_test1@s nvarchar(max)asbeginselect * from sys.objects where name = UPPER(@s)endgocreate proc p_test2@s nvarchar(100)asbeginselect * from sys.objects where name = UPPER(@s)endgo
  2. Выполните следующий код для очистки кэша процедур, и выполнить эти хранимые процедуры:
    dbcc freeproccachegoexec p_test1 N'abc'exec p_test2 N'abc'go
  3. Выполните следующий код для проверки кэшированного плана:
    select object_name(CONVERT(int, a.value)), cp.*from sys.dm_exec_cached_plans cpcross apply sys.dm_exec_plan_attributes(cp.plan_handle) awhere cp.objtype = 'Proc'and a.attribute = 'objectid'
Примечание.При наличии такого рода хранимой процедуры в Microsoft SQL Server 2008 или экземпляра Microsoft SQL Server 2008 R2 много одновременных выполнений, возможно возникновение блокировки, может быть вызвано компиляции блокировок в экземпляре.

Дополнительные сведения об описании блокировки SQL Server, вызванных компиляции блокировки содержатся в следующей статье Microsoft Knowledge Base:
263889Описание блокировки SQL Server, вызванных компиляции блокировки
Ссылки
Для получения дополнительных сведений о функции строку (Transact-SQL) посетите следующий веб-узел Майкрософт:Для получения дополнительных сведений о последовательный модели обслуживания для SQL Server щелкните следующий номер статьи базы знаний Майкрософт:
935897Последовательный модели обслуживания доступна группа разработчиков SQL Server для предоставления исправления для устранения неполадок
Для получения дополнительных сведений о схеме именования для обновления SQL Server щелкните следующий номер статьи базы знаний Майкрософт:
822499Новая схема присвоения имен пакетам обновлений программного обеспечения Microsoft SQL Server
Дополнительные сведения о терминах, используемых при описании обновлений программного обеспечения, см. в следующей статье базы знаний Майкрософт::
824684Стандартные термины, используемые при описании обновлений программных продуктов Майкрософт

Внимание! Эта статья переведена автоматически

Свойства

Номер статьи: 2380435 — последний просмотр: 11/15/2010 19:25:00 — редакция: 3.0

Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Standard Edition for Small Business, Microsoft SQL Server 2008 Workgroup, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Workgroup

  • kbqfe kbfix kbsurveynew kbexpertiseadvanced kbmt KB2380435 KbMtru
Отзывы и предложения