Gælder for
SQL Server 2008 R2 Standard SQL Server 2008 R2 Standard Edition for Small Business SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Web SQL Server 2008 R2 Workgroup

Microsoft distribuerer Microsoft SQL Server 2008 R2-rettelser som én fil, der kan downloades. Da rettelserne er kumulative, indeholder hver ny version alle hotfixes og alle de sikkerhedsrettelser, der var inkluderet i den tidligere SQL Server 2008 R2-rettelsesversion.

Symptomer

Overvej følgende scenarie:

  • Du har en Master Data Services-model (MDS) og -enhed, der har en domænebaseret attribut i Microsoft SQL Server 2008 R2. Den domænebaserede attribut er designet til at referere til den samme attribut.Du har f.eks. en medarbejderenhed, der har en ManagerName-attribut. Attributten ManagerName refererer til selve det samme Medarbejder-objekt.Bemærk! En leder er også en slags medarbejder.

  • Der er et afledt hierarki, der er defineret på en attribut for at vise den rekursive overordnede/underordnede relation for den domænebaserede attribut.

  • Du indlæser dataværdier, der indeholder en eller flere cirkulære referencer til den midlertidige MDS-tabel. Denne funktionsmåde medfører en cirkulær reference, og den første node i attributten er ikke en del af cirklen.Følgende datamønster viser f.eks. en cirkulær reference. Medlemsværdien medlem er dog ikke en del af cirklen:

    Member1 --manager attribute--> Member2 --manager attribute--> Member3 --manager attribute--> Member2 --manager attribute--> 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)
  • Du kan bruge en af følgende metoder til at indlæse dataværdier i objektet ved hjælp af DEN MIDLERTIDIGE MDS-proces:

    • Kør Exec [mdm]. [udpStagingSweep] procedure ved hjælp af de nødvendige parametre til at behandle de faseinddelte data.

    • Klik på Integrationsadministration for at besøge MDS-webstedets startside. På siden Importér eksport under sektionsoverskriften Ikke-relaterede midlertidige poster skal du klikke på Tandhjulsikonet for at behandle posterne for en bestemt model og version.

I dette scenarie kan baggrundsprocessen under den midlertidige proces støde på en uendelig løkke, når baggrundsprocessen internt kalder [mdm]. [udpMemberRecursiveCircularCheck]-procedure.

Årsag

Dette problem opstår, fordi procedurerne udpStagingSweep og udpStagingMemberAttributeSave kalder proceduren udpMemberRecursiveCircularCheck én gang for hver midlertidig række. Denne funktionsmåde bør kontrollere en domænebaseret attributværdi og returnere en fejl, hvis den midlertidige række medfører en cirkulær reference sammen med de eksisterende data. Når alle midlertidige rækker er markeret, modtager du følgende resultater:

  • De midlertidige rækker uden fejl anvendes.

  • De midlertidige rækker med fejl er angivet med en fejlkode.

Hvis de betingelser, der er beskrevet i afsnittet "Symptomer", er sande, er [mdm]. [udpMemberRecursiveCircularCheck] procedure loops på ubestemt tid, indtil enten serverressourcerne er opbrugt, eller der opstår timeout.

Løsning

Oplysninger om samlet opdatering

SQL Server 2008 R2 Service Pack 1

Rettelsen til dette problem blev først udgivet i Samlet opdatering 4. Du kan finde flere oplysninger om, hvordan du får denne samlede opdateringspakke til SQL Server 2008 R2 SP1, ved at klikke på nedenstående artikelnummer for at få vist artiklen i Microsoft Knowledge Base:

2633146 Samlet opdateringspakke 4 til SQL Server 2008 R2 Service Pack 1Note Da builds er kumulative, indeholder hver ny rettelse alle de hotfixes og alle de sikkerhedsrettelser, der fulgte med den tidligere SQL Server 2008 R2 SP1-rettelsesversion. Vi anbefaler, at du overvejer at anvende den nyeste rettelse, der indeholder dette hotfix. Få flere oplysninger ved at klikke på følgende artikelnummer for at få vist artiklen i Microsoft Knowledge Base:

2567616 De SQL Server 2008 R2-builds, der blev udgivet efter SQL Server 2008 R2 Service Pack 1 blev udgivet

Status

Microsoft har bekræftet, at problemet findes i de Microsoft-produkter, der er angivet i afsnittet "Gælder for".

Løsning

Du kan løse dette problem med en af følgende metoder:

  • Hvis du vil forhindre problemet, skal du følge disse trin:

    1. Gennemse manuelt de medlemsdataværdier, der indsættes i den midlertidige tabel, før du kører den midlertidige proces.

    2. Sørg for, at alle medlemsværdier for domænebaserede attributter ikke indeholder cirkulære referencer, der er beskrevet i afsnittet "Symptomer"

  • Når det problem, der er beskrevet i afsnittet "Symptomer", opstår, skal du følge disse trin for at løse problemet:

    1. Identificer den session, der kører i den uendelige løkke.

    2. Dræb sessionen for at stoppe løkken.

    3. Slet de cirkulære referenceværdier fra den midlertidige tabel, før den cirkulære reference behandles igen.

Bemærkninger

  • Brug en af følgende metoder til at identificere, hvilken session der skal dræbes:

    • Brug en aktivitetsovervågning i Microsoft SQL Server Management Studio.

    • Vælg fra sys.sysprocesses eller sys.dm_exec_requests DMV (Dynamic Management View) for at identificere de sessioner, der arbejder i MDS-databasen, hvor CPU'en og tiden stiger hurtigt. Sørg for, at den aktuelle forespørgsel, der kører på sessionen, svarer til de procedurenavne, der er beskrevet i afsnittet "Årsag".

  • Brug en af følgende metoder til at identificere den igangværende procedure for sessionerne:

    • Højreklik på menuen Detaljer for hver proces på listen over aktivitetsovervågningsprocesser.

    • Brug en af følgende parametre:

      • Kommandoen DBCC INPUTBUFFER (spid) sammen med sessions-id'et.

      • Funktionen SELECT * FROM sys.dm_exec_sql_text(sqlhandle) sammen med den tilsvarende SQL-handleparameter, når du bruger DMV-outputtet.

Referencer

Du kan finde flere oplysninger om, hvordan du åbner en aktivitetsovervågning i SQL Server Management Studio, på følgende MSDN-websted:

Sådan åbner du en aktivitetsovervågning i SQL Server Management StudioDu kan finde flere oplysninger om KILL-syntaksen på følgende MSDN-websted:

Generelle oplysninger om KILL-syntaksenDu kan finde flere oplysninger om sys.dm_exec_requests DMV på følgende MSDN-websted:

Generelle oplysninger om sys.dm_exec_requests DMVDu kan finde flere oplysninger om sys.dm_exec_sql_text DMV på følgende MSDN-websted:

Generelle oplysninger om sys.dm_exec_sql_text DMVDu kan finde flere oplysninger om kommandoen DBCC INPUTBUFFER på følgende MSDN-websted:

Generelle oplysninger om kommandoen DBCC INPUTBUFFERFlere oplysninger om den trinvise serviceringsmodel for SQL Server finder du ved at klikke på nedenstående artikelnummer for at få vist artiklen i Microsoft Knowledge Base:

935897 En trinvis serviceringsmodel er tilgængelig fra SQL Server-teamet til at levere hotfixes til rapporterede problemer Du kan få flere oplysninger om navngivningsskemaet for SQL Server opdateringer ved at klikke på nedenstående artikelnummer for at få vist artiklen i Microsoft Knowledge Base:

822499 Nyt navngivningsskema for Microsoft SQL Server softwareopdateringspakker Du kan få flere oplysninger om softwareopdateringsterminologi ved at klikke på nedenstående artikelnummer for at få vist artiklen i Microsoft Knowledge Base:

824684 Beskrivelse af den standardterminologi, der bruges om Microsoft-softwareopdateringer.

Har du brug for mere hjælp?

Vil du have flere indstillinger?

Udforsk abonnementsfordele, gennemse kurser, få mere at vide om, hvordan du sikrer din enhed og meget mere.