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

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

Проблемы

Рассмотрим следующий сценарий.

  • У вас есть модель и сущность с доменными службами данных (MDS), у которых есть атрибут на основе домена в Microsoft SQL Server 2008 R2. Атрибут domain (доменный) предназначен для того, чтобы являться ссылкой на тот же атрибут. Например, у вас есть сущность сотрудника с атрибутом ManagerName . Атрибут ManagerName ссылается на ту же сущность сотрудника.Примечание. Руководитель — это также один и тот же сотрудник.

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

  • Вы можете загрузить значения данных, содержащие одну или несколько циклических ссылок на промежуточную таблицу MDS. Это приводит к образованию циклической ссылки и первого узла атрибута не является частью круга. Например, в приведенном ниже шаблоне данных показана циклическая ссылка. Однако значение элемента Member1 не является частью круга.

    Атрибут "Member1-Manager" — > > атрибут Member3-Manager--> Member2-Manager--> Member3

    insert into mdm.tblStgMemberAttribute(ModelName, EntityName, MemberType_ID, MemberCode, AttributeName, AttributeValue, Status_ID)Values ('EntityTest', 'ModelTest', 1, 'Member3', 'Manager', 'Member2', 0),('EntityTest', 'ModelTest', 1, 'Member2', 'Manager', 'Member3', 0),('EntityTest', 'ModelTest', 1, 'Member3', 'Manager', 'Member2', 0),('EntityTest', 'ModelTest', 1, 'Member2', 'Manager', 'Member1', 0)('EntityTest', 'ModelTest', 1, 'Member1', 'Manager', 'NULL', 0)
  • Используйте один из следующих методов для загрузки значений данных в сущность с помощью процесса промежуточного хранения MDS.

    • Запустите исполняемый пакет Exec [MDM]. [ udpStagingSweep] , используя необходимые параметры для обработки поэтапных данных.

    • Щелкните Управление интеграцией , чтобы открыть домашнюю страницу веб-сайта MDS. На странице Импорт экспорта в заголовке раздела Непакетированные промежуточные записи щелкните значок шестеренки , чтобы обработать записи для конкретной модели и версии.

В этом сценарии фоновый процесс во время промежуточного процесса может столкнуться с бесконечным циклом, когда фоновый процесс внутренне вызывает [MDM]. [ udpMemberRecursiveCircularCheck] .

Причина

Эта проблема возникает из-за того, что процедуры udpStagingSweep и UdpStagingMemberAttributeSave вызывают процедуру udpMemberRecursiveCircularCheck один раз для каждой промежуточной строки. Это поведение должно проверять значение атрибута на основе домена и возвращает ошибку, если промежуточная строка приводит к созданию циклической ссылки вместе с существующими данными. После того как все промежуточные строки будут проверены, появляются следующие результаты:

  • Будут применены промежуточные строки без ошибок.

  • Промежуточные строки с ошибками указаны с кодом ошибки.

Если условия, описанные в разделе "симптомы", имеют значение истина, то [MDM]. [ udpMemberRecursiveCircularCheck] процедура бессрочно обрабатывает циклы до тех пор, пока исчерпаны ресурсы сервера или не истечет время ожидания.

Решение

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

SQL Server 2008 R2 с пакетом обновления 1 (SP1)

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

2633146 Накопительный пакет обновления 4 для SQL Server 2008 R2 с пакетом обновления 1 (SP1)Примечание. Так как сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008 R2 с пакетом обновления 1 (SP1). Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:

2567616 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2 с пакетом обновления 1 (SP1)

Статус

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

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

Чтобы обойти эту проблему, воспользуйтесь одним из описанных ниже методов.

  • Чтобы избежать этой ошибки, выполните указанные ниже действия.

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

    2. Убедитесь, что все значения членов для всех атрибутов на основе домена не содержат циклических ссылок, описанных в разделе "симптомы".

  • При возникновении проблемы, описанной в разделе "проблема", выполните указанные ниже действия, чтобы исправить эту ошибку.

    1. Определение сеанса, работающего в бесконечном цикле.

    2. Прервать сеанс, чтобы остановить цикл.

    3. Удалите значения циклических ссылок из промежуточной таблицы перед повторной обработкой циклической ссылки.

Примечания.

  • Чтобы определить, какой из сеансов нужно уничтожить, воспользуйтесь одним из указанных ниже способов.

    • Использование монитора активности в Microsoft SQL Server Management Studio.

    • Выберите из динамического административного представления sys. sysprocesses или sys.dm_exec_requests , чтобы определить сеансы, которые работают в базе данных MDS, в которой ЦП и время будут быстро возрастающими. Убедитесь, что текущий запрос, выполняемый в сеансе, совпадает с именами процедур, описанными в разделе "причина".

  • Для определения выполняемой в данный момент процедуры для сеансов используйте один из указанных ниже способов.

    • Щелкните правой кнопкой мыши меню подробных сведений в каждом процессе в списке процессов на мониторе активности.

    • Используйте один из следующих параметров:

      • Команда DBCC INPUTBUFFER (SPID) вместе с ИДЕНТИФИКАТОРом сеанса.

      • Функция SELECT * FROM sys.dm_exec_sql_text (sqlhandle) вместе с соответствующим параметром обработчика SQL при использовании выходных данных динамического представления.

Ссылки

Дополнительные сведения о том, как открыть монитор активности в SQL Server Management Studio, можно найти на веб-сайте MSDN по следующему адресу:

Открытие монитора активности в SQL Server Management StudioДополнительные сведения о синтаксисе Kill можно найти на веб-сайте MSDN по следующему адресу:

Общие сведения о синтаксисе KILLДополнительные сведения о sys.dm_exec_requests DMV можно найти на веб-сайте MSDN по следующему адресу:

Общие сведения о sys.dm_exec_requests DMVДополнительные сведения о sys.dm_exec_sql_text DMV можно найти на веб-сайте MSDN по следующему адресу:

Общие сведения о sys.dm_exec_sql_text DMVДополнительные сведения о команде DBCC INPUTBUFFER можно найти на веб-сайте MSDN по следующему адресу:

Общие сведения о команде DBCC INPUTBUFFERЧтобы получить дополнительные сведения о модели добавочного обслуживания для SQL Server, щелкните следующий номер статьи базы знаний Майкрософт:

935897 Модель обслуживания изменений, используемая рабочей группой SQL Server, предоставляет модель ISM для распространения исправлений обнаруженных проблемЧтобы получить дополнительные сведения о схеме присвоения имен обновлениям SQL Server, щелкните следующий номер статьи базы знаний Майкрософт:

822499 Новая схема присвоения имен пакетам обновлений программного обеспечения Microsoft SQL ServerЧтобы получить дополнительные сведения о терминологии обновления программного обеспечения, щелкните следующий номер статьи базы знаний Майкрософт:

824684 Стандартные термины, используемые при описании обновлений программных продуктов Майкрософт

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

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

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

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

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

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

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

×