KB2628712-FIX: безкраен цикъл възниква в йерархия, която съдържа кръгова релация в SQL Server 2008 R2

Работете навсякъде от всяко устройство с Microsoft 365

Надстройте до Microsoft 365, за да работите навсякъде с най-новите функции и актуализации.

Надстройване сега

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

Симптоми

Обмислете следния сценарий:

  • Имате модел за услуги за главни данни (МДС), който има базиран на домейни атрибут в Microsoft SQL Server 2008 R2. Атрибутът базиран на домейни е проектиран да бъде самостоятелно препращащ към един и същ атрибут. Например имате служител, който има атрибут ManagerName . Атрибутът ManagerName се отнася за един и същ субект на служител.Забележка Ръководителят е и един вид служител.

  • Има извлечена йерархия, която е дефинирана в атрибут, за да показва рекурсивната релация родител/наследник за базиран на домейни атрибут.

  • Зареждате стойности на данни, които съдържат една или повече кръгови препратки към таблицата за спиране на МДС. Това поведение води до кръгова препратка и първият възел в атрибута не е част от кръга. Например следния модел на данни показва кръгова препратка. Обаче стойността на Member1 член не е част от кръга:

    Member1------> Member2---------> Member3--ръководител на атрибута-> Member2--->-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)
  • Можете да използвате един от следните методи, за да заредите стойности на данни в обекта с помощта на процеса за спиране на МДС:

    • Стартирайте Exec [MDM]. [ udpStagingSweep] процедура с помощта на необходимите параметри за обработка на поетапните данни.

    • Щракнете върху управление на интеграцията , за да посетите началната страница на уеб сайта на МДС. На страницата Импортиране на експортиране , под заглавката на секцията непартиден запис , щракнете върху иконата на зъбно колело , за да обработите записите за конкретен модел и версия.

При този сценарий процесът на заден фон по време на процеса на спиране може да се натъкне на безкраен цикъл, когато процесът на заден план вътрешно извиква [MDM]. [ udpMemberRecursiveCircularCheck] процедура.

Причина

Този проблем възниква, тъй като процедурите udpStagingSweep и udpStagingMemberAttributeSave се обаждат на udpMemberRecursiveCircularCheck процедура един път за всеки ред за спиране. Това поведение трябва да проверява стойността на атрибута, базирано на домейн, и връща грешка, ако редът за спиране води до кръгова препратка заедно със съществуващите данни. След като всички редове са отметнати, получавате следните резултати:

  • Прилагат се редове без грешки.

  • С код на грешка се забелязват редове с грешки.

Ако условията, които са описани в секцията "симптоми", са TRUE, [MDM]. [ udpMemberRecursiveCircularCheck] линии за процедура за неопределено време до изчерпване на ресурсите на сървъра или прекъсване на времето.

Решение

Информация за сборна актуализация

SQL Server 2008 R2 сервизен пакет 1

Корекцията за този проблем е издадена за първи път в кумулативната актуализация 4. За повече информация как да получите тази кумулативна актуализация на пакета за SQL Server 2008 R2 SP1, щракнете върху следния номер на статия, за да видите статията в базата знания на Microsoft:

2633146 Кумулативна актуализация на пакета 4 за SQL Server 2008 R2 Service Pack 1Забележка Тъй като компилациите са кумулативни, всяко ново издание за корекция съдържа всички актуални корекции и всички корекции на защитата, които са били включени при предишното издание на SQL Server 2008 R2 SP1. Препоръчваме ви да обмислите прилагането на най-новото съобщение за корекция, което съдържа тази спешна корекция. За допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

2567616 SQL Server 2008 R2 изгражда, които са издадени след SQL Server 2008 R2 Service Pack 1 е издадена

Състоянието

Microsoft потвърди, че това е проблем в продуктите на Microsoft, които са посочени в секцията "важи за".

Заобиколно решение

За да решите проблема по заобиколен начин, използвайте един от следните методи:

  • За да предотвратите проблема, изпълнете следните стъпки:

    1. Ръчно прегледайте стойностите на данните за членовете, които са вмъкнати в таблицата за спиране, преди да изпълните процеса на спиране.

    2. Уверете се, че всички стойности за всеки базиран на домейни атрибут не съдържат кръгови препратки, които са описани в раздела "симптоми"

  • Когато проблемът е описан в секцията "симптоми", следвайте тези стъпки, за да коригирате проблема:

    1. Определяне на сесията, която се изпълнява в безкраен цикъл.

    2. Убийте сесията, за да спрете цикъла.

    3. Изтрийте кръглите референтни стойности от таблицата за спиране, преди да се обработи кръговата препратка.

Забележки

  • За да определите коя сесия да убие, използвайте един от следните начини:

    • Използвайте монитор за дейности в студио за управление на Microsoft SQL Server.

    • Изберете from the sys. sysprocesses или sys.dm_exec_requests динамичен изглед за управление (DMV), за да идентифицирате сесиите, които РАБОТЯТ в базата данни МДС, в която процесора и времето се увеличават бързо. Уверете се, че текущата заявка, която се изпълнява на сесията, съвпада с имената на процедурите, описани в секцията "причина".

  • За да идентифицирате текущите процедури за сесиите, използвайте един от следните начини:

    • Щракнете с десния бутон върху менюто по- подробно за всеки процес в списъка с процеси за следене на дейността.

    • Използвайте един от следните параметри:

      • Командата DBCC INPUTBUFFER (SPID) заедно със ИД на сесията.

      • Командата SELECT * FROM sys.dm_exec_sql_text (sqlhandle) заедно с параметъра Matching SQL handle, когато използвате изхода DMV.

Препратки

За повече информация как да отворите монитор за дейности в студио за управление на SQL Server, посетете следния уеб сайт на MSDN:

Как се отваря монитор за дейности в студио за управление на SQL ServerЗа повече информация относно синтаксиса на 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 щракнете върху следния номер на статия, за да видите статията в базата знания на Microsoft:

935897 На екипа на SQL Server е достъпен модел за постъпково обслужване, за да достави спешни корекции за съобщени проблемиЗа повече информация относно схемата за имена за актуализации на SQL Server щракнете върху следния номер на статия, за да видите статията в базата знания на Microsoft:

822499 Нова схема за имена за пакетите за актуализация на софтуера на Microsoft SQL ServerЗа повече информация за терминологията на софтуерната актуализация щракнете върху следния номер на статия, за да видите статията в базата знания на Microsoft:

824684 Описание на стандартната терминология, която се използва за описание на актуализациите на софтуер на Microsoft

Нуждаете се от още помощ?

Разширете уменията си
Преглед на обучението
Получавайте първи новите функции
Присъединете се към Microsoft приобщени

Беше ли полезна тази информация?

Благодарим ви за обратната връзка!

Благодарим ви за вашата обратна връзка. Изглежда, че ще бъде полезно да ви свържем с един от нашите агенти по поддръжката на Office.

×