Sintomi
Si consideri lo scenario seguente:
-
Si esegue un'istruzione ALTER INDEX ... In linea query in Microsoft SQL Server 2012 o SQL Server 2014.
-
Questa query viene interrotta a causa un deadlock o un'azione avviata dall'utente, quali l'esecuzione di un comando di interruzione o annullamento della query.
In questo scenario, le operazioni DML che sono necessario utilizzare i metadati dell'indice sono bloccate o richiedono molto tempo per essere completata.
Inoltre, si verifichino i seguenti sintomi:-
Valori elevati di PWAIT_MD_RELATION_CACHE o MD_LAZYCACHE_RWLOCK tipo di attesa quando si esegue una query di viste a gestione dinamica os_wait_stats e sys.dm_exec_requests (DMV)
-
Valori elevati per SOS_RW tipo di attesa quando si esegue una query sys.dm_os_spinlock_stats DMV
Questo problema solitamente si osserva come una serie di istruzioni di blocco che si verifica quando tutte le nuove query DML lentamente Cancella gli oggetti di sincronizzazione. Data la natura in attesa di oggetti di sincronizzazione, l'utilizzo della CPU è in genere limitato.
Risoluzione
Informazioni sull'aggiornamento cumulativo
Il problema è stato risolto prima nell'aggiornamento cumulativo seguente di SQL Server.
Aggiornamento cumulativo 1 per SQL Server 2014/en-us/help/2931693
Aggiornamento cumulativo 9 per SQL Server 2012 SP1/en-us/help/2931078
Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutti gli hotfix e tutte le correzioni di protezione che sono state incluse nell'aggiornamento cumulativo precedente. Estrarre gli ultimi aggiornamenti cumulativi per SQL Server:
Informazioni sull'hotfix
Un hotfix supportato è disponibile da Microsoft. Tuttavia, questo hotfix è destinato esclusivamente alla correzione del problema descritto in questo articolo. Applicare questo hotfix solo ai sistemi in cui si verificano questo problema specifico. Se l'hotfix è disponibile per il download, vi è una sezione "Hotfix Download disponibile" nella parte superiore di questo articolo della Knowledge Base. Se non viene visualizzato in questa sezione, inviare una richiesta al servizio clienti Microsoft e supporto tecnico per ottenere l'hotfix. Nota: Se si verificano ulteriori problemi o se qualsiasi risoluzione dei problemi è necessario, è necessario creare una richiesta di assistenza separata. I costi di supporto normale verranno applicati per eventuali ulteriori domande e problemi che non dovessero rientrare specifico hotfix in questione. Per un elenco completo dei numeri di telefono del servizio clienti Microsoft e supporto tecnico o per creare una richiesta di assistenza separata, visitare il seguente sito Web Microsoft:http://support.microsoft.com/contactus/?ws=supportNota: Il modulo "Hotfix Download disponibile" Visualizza le lingue per cui è disponibile l'hotfix. Se non viene visualizzata la lingua, è perché un aggiornamento rapido non è disponibile per tale lingua. Importante Dopo avere applicato questo hotfix, il ALTER INDEX... In linea query possa essere interrotta senza diminuire le prestazioni di SQL Server.
Soluzione alternativa
Per risolvere questo problema, è possibile cancellare la voce di metadati per impedire la serie di istruzioni di blocco e potenziali cicli recompile che riducono le prestazioni delle query. A tale scopo, utilizzare uno dei seguenti metodi per cancellare la voce di metadati:
-
Riavviare l'istanza di SQL Server 2012 o SQL Server 2014.
-
Inserire il database problematici in stato non in linea e quindi portarla nuovamente in linea.
Stato
Microsoft ha confermato che questo è un problema dei prodotti Microsoft elencati nella sezione "Si applica a".