Sintomi
Si supponga di eseguire una query in una colonna BLOB (Binary Large Object) in Microsoft SQL Server 2008 R2 o in Microsoft SQL Server 2012 in un computer con più CPU. La query usa l'hint NOLOCK . In questa situazione si verifica un uso elevato della CPU nel computer.Nota Questo problema è più probabile che si verifichi se nel computer sono installate 16 o più CPU.
Causa
Questo problema si verifica perché un algoritmo backoff di spinlock non è efficiente.
Risoluzione
Informazioni sull'aggiornamento cumulativo
Aggiornamento cumulativo 2 per SQL Server 2012 SP1
La correzione di questo problema è stata rilasciata per la prima volta in aggiornamento cumulativo 2. Per altre informazioni su come ottenere questo pacchetto di aggiornamento cumulativo per SQL Server 2012 SP1, fare clic sul numero dell'articolo seguente per visualizzare l'articolo della Microsoft Knowledge Base:
2790947 Pacchetto di aggiornamento cumulativo 2 per SQL Server 2012 Service Pack 1Nota 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 2012 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:
2772858 Build di SQL Server 2012 rilasciate dopo il rilascio di SQL Server 2012 Service Pack 1
Aggiornamento cumulativo 5 per SQL Server 2012
La correzione di questo problema è stata rilasciata per la prima volta in aggiornamento cumulativo 5. Per altre informazioni su come ottenere questo pacchetto di aggiornamento cumulativo per SQL Server 2012, fare clic sul numero dell'articolo della Microsoft Knowledge Base seguente per visualizzare l'articolo:
2777772 Pacchetto di aggiornamento cumulativo 5 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 2012 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
SQL Server 2008 R2 Service Pack 2
La correzione di questo problema è stata rilasciata per la prima volta in aggiornamento cumulativo 3. Per altre informazioni su come ottenere questo pacchetto di aggiornamento cumulativo per SQL Server 2008 R2 Service Pack 2, fare clic sul numero dell'articolo della Microsoft Knowledge Base seguente per visualizzare l'articolo:
2754552 Pacchetto di aggiornamento cumulativo 3 per SQL Server 2008 R2 Service Pack 2Nota 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 2008 R2 Service Pack 2 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:
2730301 Build di SQL Server 2008 R2 rilasciate dopo il rilascio di SQL Server 2008 R2 Service Pack 2
Stato
Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".
Soluzione alternativa
Per risolvere il problema, usare uno dei metodi seguenti:
-
Ridurre le dimensioni della colonna oggetto binario di grandi dimensioni.
-
Rimuovere l'hint NOLOCK dalla query.
-
Ridurre il numero di CPU usato da SQL Server.