Перейти к основному контенту
Поддержка
Войдите с помощью учетной записи Майкрософт
Войдите или создайте учетную запись.
Здравствуйте,
Выберите другую учетную запись.
У вас несколько учетных записей
Выберите учетную запись, с помощью которой нужно войти.

Проблемы

Предположим, что на компьютере установлено приложение Microsoft SQL Server 2012 с пакетом обновления 2 (SP2). Вы вызываете cdc.fn_cdc_get_net_changes_<capture_instance> Change Data Capture (CDC) в хранимой процедуре sp_executesql и может поступать из источника приложения, например SQL Server Management Studio (SSMS), собственно или пакетов служб SQL Server Integration Services (SSIS). В этой ситуации производительность сервера SQL Server 2012 снижается.Примечание.Снижение производительности может быть очень большим. Например, в SQL Server 2012 с пакетом обновления 1 (SP1) запрос может завершиться через несколько секунд. Однако в SQL Server 2012 с пакетом обновления 2 (SP2) для работы одного и того же запроса может потребоваться несколько часов. Кроме того, обновление статистики не поможет устранить проблему.

Причина

Эта проблема возникает из-за проблемы с оценкой количества элементов, которая сильно влияет на производительность cdc.fn_cdc_get_net_changes_<capture_instance> Query.

Все новые накопительные обновления для SQL Server содержат все исправления и все исправления для системы безопасности, которые были включены в предыдущий накопительный пакет обновления. Ознакомьтесь с самыми последними накопительными обновлениями для SQL Server.

Обходное решение

Для решения этой проблемы используйте подсказку запроса Option (RECOMPILE) в запросе. Если запрос запускается из компонентов служб SSIS CDC, можно принудительно создать руководство по плану, как показано в следующем примере:Exec sp_create_plan_guide @name = N'CDC_Query1_PlanGuide', @stmt = N'select [__$start_lsn],[__$operation],[__$update_mask],[Column1],[Column2],[Column3] from [cdc].[fn_cdc_get_net_changes_dbo_Table1](CONVERT(binary(10), @cs, 1), CONVERT(binary(10), @ce, 1), @mode)',@type = N'SQL',@module_or_batch = NULL, @params = N'@ce nvarchar(22),@mode nvarchar(14),@cs nvarchar(22)', @hints = N'OPTION (RECOMPILE)'; Примечание.Вам необходимо заменить запрос с примером на запрос, с которым вы столкнулись с проблемой. Это может быть извлечено из трассировки профилировщика , поэтому лишние символы не добавляются случайно. Кроме того, убедитесь, что запрос на выборку помещен в одну строку (например, не должен содержать возврат каретки или перевод строки), чтобы руководство плана могло работать успешно. Также может потребоваться использование инструкции DBCC FREEPROCCACHE для маскировки старого плана из кэша.

Статус

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

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

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

Были ли сведения полезными?

Насколько вы удовлетворены качеством перевода?
Что повлияло на вашу оценку?
После нажатия кнопки "Отправить" ваш отзыв будет использован для улучшения продуктов и служб Майкрософт. Эти данные будут доступны для сбора ИТ-администратору. Заявление о конфиденциальности.

Спасибо за ваш отзыв!

×