Accedi con Microsoft
Accedi o crea un account.
Salve,
Seleziona un altro account.
Hai più account
Scegli l'account con cui vuoi accedere.

Microsoft distribuisce le correzioni di Microsoft SQL Server 2008 R2 in un unico file scaricabile. Poiché le correzioni sono cumulative, ogni nuova versione contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nella versione precedente di SQL Server 2008 R2 Fix.

Sintomi

Considerare lo scenario descritto di seguito:

  • Si dispone di un modello e un'entità Master Data Services (MDS) con un attributo basato su dominio in Microsoft SQL Server 2008 R2. L'attributo basato su dominio è progettato per fare riferimento autonomo allo stesso attributo. Ad esempio, hai un'entità dipendente che ha un attributo ManagerName . L'attributo ManagerName si riferisce alla stessa entità dipendente.Nota Un responsabile è anche un tipo di dipendente.

  • Esiste una gerarchia derivata definita in un attributo per visualizzare la relazione padre/figlio ricorsiva per l'attributo basato su dominio.

  • Si caricano i valori dei dati che contengono uno o più riferimenti circolari alla tabella di staging di MDS. Questo comportamento causa un riferimento circolare e il primo nodo nell'attributo non fa parte del cerchio. Ad esempio, il modello di dati seguente mostra un riferimento circolare. Tuttavia, il valore del membro membro1 non fa parte del cerchio:

    Membro1--attributo Manager--> Membro2--attributo Manager--> Member3--attributo Manager--> Membro2--attributo 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)
  • Puoi usare uno dei metodi seguenti per caricare i valori dei dati nell'entità usando il processo di gestione temporanea di MDS:

    • Eseguire exec [mdm]. [ udpStagingSweep] usando i parametri necessari per elaborare i dati a fasi.

    • Fare clic su Gestione integrazione per visitare la Home page del sito Web MDS. Nella pagina Import Export fare clic sull'icona a forma di ingranaggio per elaborare i record di un determinato modello e versione nell'intestazione della sezione record di staging non in batch.

In questo scenario, il processo in background durante il processo di staging può incontrare un ciclo infinito quando il processo in background chiama internamente [mdm]. [ udpMemberRecursiveCircularCheck] .

Causa

Questo problema si verifica perché le routine udpStagingSweep e udpStagingMemberAttributeSave chiamano la procedura udpMemberRecursiveCircularCheck una sola volta per ogni riga di staging. Questo comportamento deve controllare un valore di attributo basato su dominio e restituisce un errore se la riga di staging causa un riferimento circolare insieme ai dati esistenti. Dopo aver selezionato tutte le righe di staging, vengono visualizzati i risultati seguenti:

  • Vengono applicate le righe di staging senza errori.

  • Le righe di staging con errori sono note con un codice di errore.

Se le condizioni descritte nella sezione "Sintomi" sono vere, [mdm]. [ udpMemberRecursiveCircularCheck] viene eseguito un ciclo a tempo indeterminato finché le risorse del server non vengono esaurite o si verifica un timeout.

Risoluzione

Informazioni sull'aggiornamento cumulativo

SQL Server 2008 R2 Service Pack 1

La correzione di questo problema è stata rilasciata per la prima volta nell'aggiornamento cumulativo 4. Per altre informazioni su come ottenere questo pacchetto di aggiornamento cumulativo per SQL Server 2008 R2 SP1, fare clic sul numero dell'articolo seguente per visualizzare l'articolo della Microsoft Knowledge Base:

2633146 Pacchetto di aggiornamento cumulativo 4 per SQL Server 2008 R2 Service Pack 1Nota Poiché le compilazioni sono cumulative, ogni nuova versione di correzione contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nella versione precedente di SQL Server 2008 R2 SP1 FIX. Ti consigliamo di considerare l'applicazione della versione di correzione più recente che contiene questo hotfix. Per ulteriori informazioni, fare clic sul numero dell'articolo seguente per visualizzare l'articolo nella Microsoft Knowledge Base:

2567616 Le build di SQL Server 2008 R2 rilasciate dopo il rilascio di SQL Server 2008 R2 Service Pack 1

Stato

Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".

Soluzione alternativa

Per ovviare a questo problema, utilizzare uno dei seguenti metodi:

  • Per evitare il problema, eseguire le operazioni seguenti:

    1. Rivedere manualmente i valori di dati dei membri che vengono inseriti nella tabella di gestione temporanea prima di eseguire il processo di gestione temporanea.

    2. Assicurarsi che tutti i valori dei membri per qualsiasi attributo basato su dominio non contengano riferimenti circolari descritti nella sezione "Sintomi"

  • Quando si verifica il problema descritto nella sezione "Sintomi", eseguire le operazioni seguenti per risolvere il problema:

    1. Identificare la sessione in uso nel ciclo infinito.

    2. Eliminare la sessione per arrestare il ciclo.

    3. Eliminare i valori di riferimento circolari dalla tabella di gestione temporanea prima di elaborare di nuovo il riferimento circolare.

Note

  • Per identificare la sessione da eliminare, usare uno dei metodi seguenti:

    • Usare un monitor attività in Microsoft SQL Server Management Studio.

    • Seleziona dalla vista sys. sysprocesses o sys.dm_exec_requests DMV per identificare le sessioni che lavorano all'interno del database MDS in cui la CPU e il tempo vengono incrementati rapidamente. Verificare che la query corrente in esecuzione nella sessione corrisponda ai nomi delle procedure descritti nella sezione "causa".

  • Per identificare la procedura attualmente in uso per le sessioni, usare uno dei metodi seguenti:

    • Fare clic con il pulsante destro del mouse su Dettagli su ogni processo nell'elenco processi attività monitor.

    • Usare uno dei parametri seguenti:

      • Comando DBCC INPUTBUFFER (SPID) insieme all'ID sessione.

      • La funzione SELECT * FROM sys.dm_exec_sql_text (SQLHANDLE) insieme al parametro di handle SQL corrispondente quando si usa l'output DMV.

Riferimenti

Per altre informazioni su come aprire un monitoraggio attività in SQL Server Management Studio, visitare il sito Web MSDN seguente:

Come aprire un monitoraggio attività in SQL Server Management StudioPer altre informazioni sulla sintassi Kill , visitare il sito Web MSDN seguente:

Informazioni generali sulla sintassi KILLPer altre informazioni sulla DMV sys.dm_exec_requests , visitare il sito Web MSDN seguente:

Informazioni generali sulla DMV sys.dm_exec_requestsPer altre informazioni sulla DMV sys.dm_exec_sql_text , visitare il sito Web MSDN seguente:

Informazioni generali sulla DMV sys.dm_exec_sql_textPer altre informazioni sul comando DBCC INPUTBUFFER , visitare il sito Web MSDN seguente:

Informazioni generali sul comando DBCC INPUTBUFFERPer altre informazioni sul modello di manutenzione incrementale per SQL Server, fare clic sul numero dell'articolo della Microsoft Knowledge Base seguente per visualizzare l'articolo:

935897 Un modello di manutenzione incrementale è disponibile nel team di SQL Server per fornire gli hotfix per i problemi segnalatiPer altre informazioni sullo schema di denominazione per gli aggiornamenti di SQL Server, fare clic sul numero dell'articolo della Microsoft Knowledge Base seguente per visualizzare l'articolo:

822499 Nuovo schema di denominazione per i pacchetti di aggiornamento software di Microsoft SQL ServerPer altre informazioni sulla terminologia degli aggiornamenti software, fare clic sul numero dell'articolo della Microsoft Knowledge Base seguente per visualizzare l'articolo:

824684 Descrizione della terminologia standard utilizzata per descrivere gli aggiornamenti software Microsoft

Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.

Le community aiutano a porre e a rispondere alle domande, a fornire feedback e ad ascoltare gli esperti con approfondite conoscenze.

Queste informazioni sono risultate utili?

Come valuti la qualità della lingua?
Cosa ha influito sulla tua esperienza?
Premendo Inviare, il tuo feedback verrà usato per migliorare i prodotti e i servizi Microsoft. L'amministratore IT potrà raccogliere questi dati. Informativa sulla privacy.

Grazie per il feedback!

×