Przejdź do głównej zawartości
Pomoc techniczna
Zaloguj się przy użyciu konta Microsoft
Zaloguj się lub utwórz konto.
Witaj,
Wybierz inne konto.
Masz wiele kont
Wybierz konto, za pomocą którego chcesz się zalogować.

Firma Microsoft rozpowszechnia poprawki programu Microsoft SQL Server 2008 R2 jako jednego pliku do pobrania. Ponieważ poprawki są zbiorcze, każde nowe wydanie zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały dołączone do poprzedniej wersji poprawki SQL Server 2008 R2.

Symptomy

Rozpatrzmy następujący scenariusz:

  • Masz model usług danych głównych (MDS) i obiekt, który ma atrybut oparty na domenie w programie Microsoft SQL Server 2008 R2. Atrybut oparty na domenie jest przeznaczony do odwoływania się do tego samego atrybutu. Na przykład istnieje jednostka pracownika, która ma atrybut ManagerName . Atrybut ManagerName odwołuje się do samej jednostki pracownika.Uwaga Menedżer jest również rodzajem pracownika.

  • Istnieje hierarchia pochodna, która jest zdefiniowana w atrybucie w celu wyświetlenia cyklicznej relacji nadrzędny/podrzędny dla atrybutu opartego na domenie.

  • Załadowanie wartości danych zawierających co najmniej jedno cykliczne odwołanie do tabeli przemieszczania MDS. To zachowanie powoduje odwołanie cykliczne, a pierwszy węzeł w atrybucie nie jest częścią okręgu. Na przykład poniższy wzorzec danych przedstawia odwołanie cykliczne. Wartość elementu członkowskiego Member1 nie jest jednak częścią okręgu:

    Member1--Attribute, atrybut--> Member2--Manager Attribute--> Member3--Manager atrybut--> 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)
  • Aby załadować wartości danych do jednostki przy użyciu procesu przemieszczania usług MDS, należy skorzystać z jednej z następujących metod:

    • Uruchom program exec [mdm]. [ udpStagingSweep] procedura przy użyciu wymaganych parametrów do przetwarzania danych przemieszczanych.

    • Kliknij pozycję Zarządzanie integracją , aby odwiedzić stronę główną witryny usług MDS. Na stronie Importowanie eksportu w nagłówku sekcji Niezaparte rekordy przemieszczania kliknij ikonę koła zębatego , aby przetworzyć rekordy dla określonego modelu i wersji.

W tym scenariuszu podczas procesu przemieszczania w tle może wystąpić nieskończona pętla, gdy proces jest wywoływany wewnętrznie z [mdm]. [ udpMemberRecursiveCircularCheck] .

Przyczyna

Ten problem występuje, ponieważ procedury udpStagingSweep i udpStagingMemberAttributeSave oddzwonią do procedury udpMemberRecursiveCircularCheck za jednym razem dla każdego wiersza przemieszczania. To zachowanie powinno sprawdzać wartość atrybutu opartego na domenie i zwraca błąd, jeśli wiersz przemieszczania powoduje odwołanie cykliczne razem z istniejącymi danymi. Po zaznaczeniu wszystkich wierszy przemieszczania zostaną wyświetlone następujące wyniki:

  • Zostaną zastosowane wiersze przemieszczania bez błędów.

  • Wiersze przemieszczania z błędami są odnotowywane w kodzie błędu.

Jeśli warunki opisane w sekcji "Symptomy" są prawdziwe, to [mdm]. [ udpMemberRecursiveCircularCheck] procedura jest nieskończona, dopóki zasoby serwera nie zostaną wyczerpane lub gdy nastąpi przekroczenie limitu czasu.

Rozwiązanie

Informacje o aktualizacji zbiorczej

SQL Server 2008 R2 z dodatkiem Service Pack 1

Poprawka dotycząca tego problemu została wydana po raz pierwszy w aktualizacji zbiorczej 4. Aby uzyskać więcej informacji na temat sposobu uzyskiwania tego pakietu aktualizacji zbiorczej dla programu SQL Server 2008 R2 z dodatkiem SP1, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

2633146 Pakiet aktualizacji zbiorczej 4 dla programu SQL Server 2008 R2 z dodatkiem Service Pack 1Uwaga Ponieważ kompilacja jest zbiorcza, każdy nowy pakiet poprawek zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały dołączone do poprzedniej wersji poprawki SQL Server 2008 R2 SP1. Zalecamy zastosowanie najnowszego wydania poprawki zawierającego tę poprawkę. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

2567616 Kompilacje programu SQL Server 2008 R2, które zostały wydane po opublikowaniu dodatku Service Pack 1 dla programu SQL Server 2008 R2

Stan

Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji "dotyczy".

Obejście

Aby obejść ten problem, użyj jednej z następujących metod:

  • Aby zapobiec problemowi, wykonaj następujące czynności:

    1. Ręcznie przejrzyj wartości danych członka, które są wstawiane do tabeli przemieszczania przed uruchomieniem procesu przemieszczania.

    2. Upewnij się, że wszystkie wartości członków dla żadnych atrybutów opartych na domenie nie zawierają odwołań cyklicznych opisanych w sekcji Symptomy

  • Gdy wystąpi problem opisany w sekcji "Symptomy", wykonaj poniższe czynności, aby rozwiązać ten problem:

    1. Zidentyfikuj sesję, która jest uruchomiona w pętli nieskończonej.

    2. Przerwij sesję, aby zatrzymać pętlę.

    3. Usuń cykliczne wartości odwołań z tabeli tymczasowej przed ponownym przetworzeniem odwołania cyklicznego.

Uwagi

  • Aby zidentyfikować sesję do zabicia, użyj jednej z następujących metod:

    • Korzystanie z monitora aktywności w programie Microsoft SQL Server Management Studio.

    • Wybierz pozycję z widoku sys. sysprocesses lub sys.dm_exec_requests Dynamic Management View (DMV), aby zidentyfikować sesje, które działają w bazie danych usług MDS, w których procesor i czas są szybciej zwiększane. Upewnij się, że bieżąca kwerenda działająca w sesji jest zgodna z nazwami procedur, które opisano w sekcji "Przyczyna".

  • Aby zidentyfikować bieżącą procedurę dla sesji, użyj jednej z następujących metod:

    • Menu rozwijane po kliknięciu prawym przyciskiem myszy w każdym procesie na liście procesów monitora aktywności.

    • Użyj jednego z następujących parametrów:

      • Polecenie DBCC INPUTBUFFER (SPID) wraz z IDENTYFIKATORem sesji.

      • Funkcja SELECT * FROM sys.dm_exec_sql_text (sqluchwycie) wraz z parametrem odpowiedniego dojścia SQL podczas korzystania z wyników DMV.

Informacje

Aby uzyskać więcej informacji na temat otwierania monitora aktywności w programie SQL Server Management Studio, odwiedź następującą witrynę MSDN w sieci Web:

Jak otworzyć Monitor aktywności w programie SQL Server Management StudioAby uzyskać więcej informacji na temat składni Kill , odwiedź następującą witrynę MSDN w sieci Web:

Ogólne informacje na temat składni KILLAby uzyskać więcej informacji na temat sys.dm_exec_requests DMV, odwiedź następującą witrynę MSDN w sieci Web:

Informacje ogólne o sys.dm_exec_requests DMVAby uzyskać więcej informacji na temat sys.dm_exec_sql_text DMV, odwiedź następującą witrynę MSDN w sieci Web:

Informacje ogólne o sys.dm_exec_sql_text DMVAby uzyskać więcej informacji na temat polecenia DBCC INPUTBUFFER , odwiedź następującą witrynę MSDN w sieci Web:

Informacje ogólne o poleceniu DBCC INPUTBUFFERAby uzyskać więcej informacji dotyczących modelu obsługi przyrostowej dla programu SQL Server, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

935897 Model obsługi przyrostowej jest dostępny w zespole programu SQL Server w celu dostarczenia poprawek dotyczących zgłaszanych problemówAby uzyskać więcej informacji na temat schematu nazewnictwa dla aktualizacji programu SQL Server, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

822499 Nowy schemat nazewnictwa dla pakietów aktualizacji oprogramowania Microsoft SQL ServerAby uzyskać więcej informacji o terminologii dotyczącej aktualizacji oprogramowania, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

824684 Opis standardowej terminologii używanej do opisywania aktualizacji oprogramowania firmy Microsoft

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.

Czy te informacje były pomocne?

Jaka jest jakość języka?
Co wpłynęło na Twoje wrażenia?
Jeśli naciśniesz pozycję „Wyślij”, Twoja opinia zostanie użyta do ulepszania produktów i usług firmy Microsoft. Twój administrator IT będzie mógł gromadzić te dane. Oświadczenie o ochronie prywatności.

Dziękujemy za opinię!

×