Společnost Microsoft distribuuje Microsoft SQL Server 2008 R2 opravy jako jeden soubor ke stažení. Protože jsou opravy kumulativní, každá nová verze obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozího SQL serveru 2008 R2 fix release.

Příznaky

Zvažte následující scénář:

  • Máte model a entitu služby MDS (Master Data Services), které mají atribut založený na doméně v Microsoft SQL serveru 2008 R2. Atribut založený na doméně je navržený tak, aby sám odkazující na stejný atribut. Třeba máte například entitu zaměstnanec s atributem manažer . Atribut vedoucí označuje stejnou entitu zaměstnance.Poznámka Manažer je také zaměstnanec.

  • Odvozená hierarchie, která je definována na atributu, zobrazuje rekurzivní relaci nadřazený-podřízený pro atribut založený na doméně.

  • Zavedete datové hodnoty, které obsahují jeden nebo více cyklických odkazů na pracovní tabulku služby MDS. Toto chování způsobuje cyklický odkaz a první uzel atributu není součástí kruhu. Například následující vzorek dat ukazuje cyklický odkaz. Hodnota člena člen1 není součástí kruhu:

    Člen1--Manager Attribute--> Member2--Attribute (atribut)-> Member3--Attribute (atribut) – > Member2--nadřízený atribut – > 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)
  • K načtení hodnot dat do entity pomocí testovacího procesu služby MDS použijte jednu z následujících metod:

    • Spusťte exec [MDM]. [ udpStagingSweep] postup pomocí potřebných parametrů pro zpracování připravených dat.

    • Kliknutím na Správa integrace přejdete na domovskou stránku webu MDS. Na stránce Import a export klikněte v záhlaví oddílu nedávkované pracovní záznamy na ikonu ozubeného kola a zpracujte záznamy pro konkrétní model a verzi.

V tomto scénáři proces na pozadí v průběhu pracovního procesu zaznamená nekonečnou smyčku, když proces na pozadí interně volá [MDM]. [ udpMemberRecursiveCircularCheck] .

Příčina

K tomuto problému dochází, protože procedury udpStagingSweep a udpStagingMemberAttributeSave pro každý pracovní řádek zavolají proceduru udpMemberRecursiveCircularCheck jednou. Toto chování by mělo zkontrolovat hodnotu atributu domény a chybu, pokud pracovní řádek způsobí cyklický odkaz spolu s existujícími daty. Po kontrole všech pracovních řádků se zobrazí tyto výsledky:

  • Pracovní řádky bez chyb budou použity.

  • U testovacích řádků s chybami se zobrazuje kód chyby.

Pokud jsou podmínky popsané v části Příznaky pravdivé, [MDM]. [ udpMemberRecursiveCircularCheck] cykly postupů nekonečně dlouho do vyčerpání prostředků serveru, nebo dojde k vypršení časového limitu.

Řešení

Informace o kumulativní aktualizaci

SQL Server 2008 R2 Service Pack 1

Oprava pro tento problém byla poprvé vydána v kumulativní aktualizaci 4. Další informace o tom, jak získat tento kumulativní balíček aktualizací pro SQL Server 2008 R2 SP1, najdete v následujícím článku znalostní báze Microsoft Knowledge Base:

2633146 Kumulativní aktualizace 4 pro SQL Server 2008 R2 Service Pack 1Poznámka Vzhledem k tomu, že buildy jsou kumulativní, každá nová oprava obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí verze systému SQL Server 2008 R2 s aktualizací SP1. Doporučujeme zvážit použití nejnovější opravy, která obsahuje tuto opravu hotfix. Další informace naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:

2567616 Sestavení SQL Server 2008 R2, která byla vydána po SQL serveru 2008 R2 Service Pack 1, byla vydána

Stav

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.

Alternativní řešení

Jako alternativní řešení použijte jednu z následujících metod:

  • Tomuto problému se můžete vyhnout takto:

    1. Před spuštěním pracovního procesu ručně zkontrolujte hodnoty dat členů, které se vkládají do pracovní tabulky.

    2. Zajistěte, aby všechny hodnoty členů pro atributy založené na doméně neobsahovaly cyklické odkazy popsané v části Příznaky.

  • Když nastane problém popsaný v části Příznaky, opravte problém takto:

    1. Určete relaci, která běží v nekonečné smyčce.

    2. Zrušením relace ukončíte smyčku.

    3. Před dalším zpracováním cyklického odkazu odstraňte z pracovní tabulky cyklické referenční hodnoty.

Poznámky:

  • Pokud chcete zjistit, kterou relaci chcete ukončit, použijte jednu z těchto metod:

    • V aplikaci Microsoft SQL Server Management Studio použijte monitorování aktivit.

    • Vyberte z dynamického zobrazení Sys. sysprocesses nebo Sys.dm_exec_requests (DMV) k identifikaci relací, které pracují v databázi služby MDS, ve které se procesor a čas zvyšují rychleji. Zkontrolujte, jestli aktuální dotaz, který běží na relaci, odpovídá názvům procedur popsaným v části Příčina.

  • Chcete-li identifikovat aktuálně spuštěnou proceduru pro relace, použijte jednu z těchto metod:

    • Klikněte pravým tlačítkem na nabídku Podrobnosti na jednotlivých procesech v seznamu procesy monitorování aktivit.

    • Použijte některý z následujících parametrů:

      • Příkaz DBCC INPUTBUFFER (SPID) spolu s ID relace

      • Funkce SELECT * FROM sys.dm_exec_sql_text (SQLHANDLE) spolu s odpovídajícím parametrem popisovače SQL, když použijete výstup DMV.

Odkazy

Další informace o tom, jak otevřít sledování aktivit v SQL Server Management Studio, najdete na následujícím webu MSDN:

Otevření monitorování aktivit v aplikaci SQL Server Management StudioDalší informace o dezaktivační syntaxi najdete na následujícím webu MSDN:

Obecné informace o syntaxi příkazu KILLDalší informace o Sys.dm_exec_requests DMV najdete na následujícím webu MSDN:

Obecné informace o sys.dm_exec_requests DMVDalší informace o Sys.dm_exec_sql_text DMV najdete na následujícím webu MSDN:

Obecné informace o sys.dm_exec_sql_text DMVDalší informace o příkazu DBCC INPUTBUFFER najdete na následujícím webu MSDN:

Obecné informace o příkazu DBCC INPUTBUFFERDalší informace o modelu přírůstkové obsluhy pro SQL Server najdete v následujícím článku znalostní báze Microsoft Knowledge Base:

935897 Model přírůstkové obsluhy je dostupný od týmu SQL serveru a poskytuje opravy hotfix pro nahlášené problémy.Další informace o schématu přidělování názvů pro aktualizace systému SQL Server najdete v následujícím článku znalostní báze Microsoft Knowledge Base:

822499 Nové schéma přidělování názvů balíčkům aktualizací softwaru pro Microsoft SQL ServerDalší informace o terminologii aktualizací softwaru najdete v následujícím článku znalostní báze Microsoft Knowledge Base:

824684 Popis standardní terminologie používané při popisu aktualizací softwaru společnosti Microsoft

Potřebujete další pomoc?

Rozšiřte své znalosti a dovednosti
Projít školení
Získejte nové funkce jako první
Připojit se k programu Microsoft Insider

Byly tyto informace užitečné?

Jak jste spokojeni s kvalitou jazyka?
Co ovlivnilo váš názor?

Děkujeme vám za zpětnou vazbu.

×