Conectați-vă cu Microsoft
Conectați-vă sau creați un cont
Salut,
Selectați un alt cont.
Aveți mai multe conturi
Alegeți contul cu care doriți să vă conectați.

Microsoft distribuie remedieri Microsoft SQL Server 2008 R2 ca un fișier descărcabil. Deoarece remedierile sunt cumulative, fiecare lansare nouă conține toate remedierile rapide și toate remedierile de securitate care au fost incluse cu versiunea anterioară SQL Server 2008 R2 fixă.

Simptome

Luați în considerare următorul scenariu:

  • Aveți un model și o entitate (MDS) Master Data Services care are un atribut bazat pe domeniu în Microsoft SQL Server 2008 R2. Atributul bazat pe domeniu este proiectat pentru a fi auto-referire la același atribut. De exemplu, aveți o entitate angajat care are un atribut ManagerName . Atributul ManagerName face referire la aceeași entitate a angajaților propriu-zisă.Notă Un manager este, de asemenea, un fel de angajat.

  • Există o ierarhie derivată definită pe un atribut pentru a afișa relația părinte/fiu recursivă pentru atributul bazat pe domeniu.

  • Încărcați valorile de date care conțin una sau mai multe referințe circulare la tabelul de așteptare MDS. Acest comportament determină o referință circulară, iar primul nod din atribut nu face parte din cerc. De exemplu, următorul model de date arată o referință circulară. Cu toate acestea, valoarea membrului Member1 nu face parte din cerc:

    Member1--Manager atribut--> Member2--Manager atribut--> Member3--Manager atribut--> Member2--atribut 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)
  • Utilizați una dintre următoarele metode pentru a încărca valorile de date în entitate utilizând procesul de așteptare MDS:

    • Rulează Exec [mdm]. [ udpStagingSweep] prin utilizarea parametrilor necesari pentru procesarea datelor pe etape.

    • Faceți clic pe gestionare integrare pentru a accesa pagina de pornire a site-ului web MDS. În pagina Import export , sub antetul de secțiune înregistrări negrupate , faceți clic pe pictograma roată pentru a procesa înregistrările pentru un anumit model și o versiune.

În acest scenariu, procesul de fundal în timpul procesului de așteptare poate întâmpina o buclă infinită atunci când procesul de fundal apelează intern [mdm]. [ udpMemberRecursiveCircularCheck] .

Cauză

Această problemă apare deoarece procedurile udpStagingSweep și udpStagingMemberAttributeSave apelează procedura udpMemberRecursiveCircularCheck o dată pentru fiecare rând de așteptare. Acest comportament trebuie să verifice o valoare de atribut bazată pe domeniu și returnează o eroare dacă rândul de așteptare determină o referință circulară împreună cu datele existente. După ce se verifică toate rândurile de așteptare, primiți următoarele rezultate:

  • Rândurile de așteptare fără erori se aplică.

  • Rândurile de așteptare cu erori sunt notate cu un cod de eroare.

Dacă condițiile descrise în secțiunea "simptome" sunt adevărate, [mdm]. [ udpMemberRecursiveCircularCheck] buclele de procedură pe termen nelimitat până când resursele serverului sunt epuizate sau se produce o expirare.

Rezolvare

Informații despre actualizarea cumulativă

SQL Server 2008 R2 Service Pack 1

Remedierea pentru această problemă a fost lansată pentru prima dată în actualizarea cumulativă 4. Pentru mai multe informații despre cum se obține acest pachet de actualizare cumulativă pentru SQL Server 2008 R2 SP1, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:

2633146 Pachetul de actualizare cumulativă 4 pentru SQL Server 2008 R2 Service Pack 1Notă Deoarece compilările sunt cumulative, fiecare nouă versiune de remediere conține toate remedierile rapide și toate remedierile de securitate care au fost incluse în versiunea anterioară SQL Server 2008 R2 SP1. Vă recomandăm să luați în considerare aplicarea celei mai recente versiuni de remediere care conține această remediere rapidă. Pentru mai multe informații, faceți clic pe următorul număr de articol pentru a-l vedea în Baza de cunoștințe Microsoft:

2567616 SQL Server 2008 R2 construiește care au fost lansate după ce s-a lansat SQL Server 2008 R2 Service Pack 1

Stare

Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „Se aplică la”.

Soluție de evitare

Pentru a evita această problemă, utilizați una dintre metodele următoare:

  • Pentru a preveni problema, urmați acești pași:

    1. Revizuiți manual valorile de date membre care sunt inserate în tabelul de așteptare înainte de a rula procesul de așteptare.

    2. Asigurați-vă că toate valorile membre pentru toate atributele bazate pe domeniu nu conțin referințe circulare descrise în secțiunea "simptome"

  • Atunci când apare problema descrisă în secțiunea "simptome", urmați acești pași pentru a corecta problema:

    1. Identificați sesiunea care rulează în bucla infinită.

    2. Ucideți sesiunea pentru a opri bucla.

    3. Ștergeți valorile de referință circulară din tabelul de așteptare înainte ca referința circulară să fie procesată din nou.

Note

  • Pentru a identifica sesiunea de ucis, utilizați una dintre următoarele metode:

    • Utilizați un monitor de activitate în Microsoft SQL Server Management Studio.

    • Selectați din sys. sysprocesses sau sys.dm_exec_requests Dynamic Management View (DMV) pentru a identifica sesiunile care lucrează în baza de date MDS în care CPU și timpul se incrementează rapid. Asigurați-vă că interogarea curentă care rulează în sesiune se potrivește cu numele de procedură descrise în secțiunea "cauză".

  • Pentru a identifica procedura curentă pentru sesiuni, utilizați una dintre următoarele metode:

    • Faceți clic cu butonul din dreapta pe meniul Detalii din fiecare proces din listarea proceselor monitor activitate.

    • Utilizați unul dintre următorii parametri:

      • Comanda DBCC INPUTBUFFER (SPID) împreună cu ID-ul sesiunii.

      • Funcția Select * de la sys.dm_exec_sql_text (sqlhandle) împreună cu parametrul de manipulare SQL care se potrivește atunci când utilizați ieșirea DMV.

Referințe

Pentru mai multe informații despre cum să deschideți un monitor de activitate în SQL Server Management Studio, vizitați următorul site Web MSDN:

Cum se deschide un monitor de activitate în SQL Server Management StudioPentru mai multe informații despre sintaxa Kill , vizitați următorul site Web MSDN:

Informații generale despre sintaxa KILLPentru mai multe informații despre sys.dm_exec_requests DMV, vizitați următorul site Web MSDN:

Informații generale despre sys.dm_exec_requests DMVPentru mai multe informații despre sys.dm_exec_sql_text DMV, vizitați următorul site Web MSDN:

Informații generale despre sys.dm_exec_sql_text DMVPentru mai multe informații despre comanda DBCC INPUTBUFFER , vizitați următorul site Web MSDN:

Informații generale despre comanda DBCC INPUTBUFFERPentru mai multe informații despre modelul de întreținere incrementală pentru SQL Server, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:

935897 Un model de întreținere incrementală este disponibil de la echipa SQL Server pentru a livra remedieri rapide pentru problemele raportatePentru mai multe informații despre schema de denumire pentru actualizările SQL Server, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:

822499 Schemă nouă de denumire pentru pachetele de actualizare software Microsoft SQL ServerPentru mai multe informații despre terminologia actualizării software-ului, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:

824684 Descrierea terminologiei standard care este utilizată pentru a descrie actualizările de software Microsoft

Aveți nevoie de ajutor suplimentar?

Doriți mai multe opțiuni?

Explorați avantajele abonamentului, navigați prin cursurile de instruire, aflați cum să vă securizați dispozitivul și multe altele.

Comunitățile vă ajută să adresați întrebări și să răspundeți la întrebări, să oferiți feedback și să primiți feedback de la experți cu cunoștințe bogate.

Au fost utile aceste informații?

Cât de mulțumit sunteți de calitatea limbajului?
Ce v-a afectat experiența?
Apăsând pe Trimitere, feedbackul dvs. va fi utilizat pentru a îmbunătăți produsele și serviciile Microsoft. Administratorul dvs. IT va avea posibilitatea să colecteze aceste date. Angajamentul de respectare a confidențialității.

Vă mulțumim pentru feedback!

×