Applies ToSQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2012 Express SQL Server 2012 Web

Microsoft distribuisce le correzioni di Microsoft SQL Server 2012 come un 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 2012 FIX.

Sintomi

Considerare lo scenario descritto di seguito:

  • È possibile creare uno o più progetti di qualità dei dati nel client qualità dati in Microsoft SQL Server 2012.

  • Si installa l'aggiornamento cumulativo 1 per SQL Server 2012 (SQL Server 2012 CU1) e quindi si esegue il file DQSInstaller. exe per aggiornare i cataloghi di Data Quality Services (DQS) e per aggiungere nuovi oggetti.

  • Si prova ad eliminare uno dei progetti di qualità dei dati creati usando client qualità dati.

In questo scenario, il client qualità dati smette di rispondere e il motore di database di SQL Server entra in un ciclo infinito. Inoltre, il processo sqlservr. exe sperimenta un uso elevato della CPU. Note

  • Per risolvere il problema, riavviare client qualità dati e DQS.

  • Questo problema si verifica solo se il progetto Data Quality è stato creato prima di installare SQL Server 2012 CU1.

Causa

Questo problema si verifica a causa di un ciclo infinito in una stored procedure di sistema causata dall'aggiornamento non corretto di un contatore di cicli.Nota Questo problema si verifica a causa di una regressione in SQL Server 2012 CU1.

Risoluzione

Informazioni sull'aggiornamento cumulativo

Informazioni sui Service Pack per SQL Server 2012

Per risolvere il problema, ottenere il Service Pack più recente per SQL Server 2012. Per altre informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base seguente per visualizzare l'articolo:

2755533 Come ottenere il Service Pack più recente per SQL Server 2012

SQL Server 2012

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

2703275 Pacchetto di aggiornamento cumulativo 2 per SQL Server 2012Nota Poiché le build sono cumulative, ogni nuova versione di correzione contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nella versione precedente di SQL Server 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:

2692828 Build di SQL Server 2012 rilasciate dopo il rilascio di SQL Server 2012

Soluzione alternativa

Per risolvere il problema, usare uno dei metodi seguenti.Metodo 1Per aggiungere una procedura fittizia che consente al ciclo infinito della stored procedure di continuare e quindi di uscire correttamente, eseguire le operazioni seguenti:

  1. Eseguire la query seguente per identificare il nome dello schema per il progetto interessato che si è tentato di eliminare:

    SELECT 'KnowledgeManagement'+CAST(ID AS NVARCHAR) AS SchemaName, Name FROM DQS_MAIN.dbo.A_KNOWLEDGEBASE WHERE TYPE=2
  2. Usa il valore SchemaName restituito e quindi Esegui istruzioni simili alle seguenti in SQL Server Management Studio per fornire il nome dello schema corrispondente e l'ID del progetto qualità dati. Verrà creata una nuova routine fittizia per lo schema e per il progetto di qualità dati corrispondente. Di conseguenza, il loop infinito procede correttamente.

    USE DQS_PROJECTSGOCREATE PROCEDURE DQProject<ID>.NewIndexParseTrigramsFromLexiconAS BEGINPRINT 'THIS IS A DUMMY PROCEDURE TO MAKE DELETE WORK for Microsoft KB Article 2705571';END

    Nota <ID> rappresenta l'ID interno del progetto qualità dati che si sta eliminando.

  3. Verificare che il progetto qualità dati venga eliminato dal client qualità dati come previsto.

Metodo 2Se è necessario eliminare rapidamente la procedura di ciclo per conservare le risorse della CPU, eseguire le istruzioni seguenti per identificare la sessione corretta. Tuttavia, l'uccisione della procedura di ciclo non elimina il progetto qualità dati in modo pulito. Le istruzioni Transact-SQL seguenti consentono di identificare e uccidere la sessione corretta. Se è in esecuzione più di una sessione dal client qualità dati, potrebbe essere necessario eseguire più volte le istruzioni:

DECLARE @session smallint, @text nvarchar(2000), @killcommand nvarchar(200)SELECT TOP 1 @session=s.session_id, @text=st.textFROM sys.dm_exec_sessions sFULL OUTER JOIN sys.dm_exec_requests r ON s.session_id=r.session_idCROSS APPLY sys.dm_exec_sql_text(r.sql_handle) AS stWHERE program_name like 'DQ Services Client: Client Id = %, KB Id = %, Proxy = KnowledgebaseManagementEntryPointClient'AND s.status='running';SELECT 'Killing this DQS session:', @session SessionID, @text QueryText;SET @killcommand=N'Kill '+ cast(@session as nvarchar)+';'EXEC sp_executesql @killcommand;

Nota Se si usa il metodo 2 per uccidere la connessione DQS, è possibile che venga visualizzato il messaggio di errore seguente nel client qualità dati:

SQL Server Data Quality Services--------------------------------------------------------------------------------<MessageId>: si è verificata un'eccezione non gestita ApplicationUnhandledExceptionAn. Per altre informazioni, vedere il log client di Data Quality Services.--------------------------------------------------------------------------------System. Data. SqlClient. SqlException (0x80131904): si è verificato un grave errore nel comando corrente. I risultati, se presenti, devono essere eliminati.

Stato

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

Riferimenti

Per altre informazioni su come aggiornare DQS, visitare il sito Web Microsoft TechNet seguente:

Come aggiornare DQS

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.