Problembeschreibung
Genommen Sie an, dass Sie in Microsoft SQL Server 2008 R2 oder in Microsoft SQL Server 2012 auf einem Computer mit mehreren CPUs eine BLOB-Spalte (Binary Large Object) Abfragen. Die Abfrage verwendet den NOLOCK -Hinweis. In diesem Fall wird die CPU-Auslastung auf dem Computer stark beansprucht.HinweisDieses Problem tritt eher auf, wenn auf dem Computer mindestens 16 CPUs installiert sind.
Ursache
Dieses Problem tritt auf, weil ein Spinlock-Backoff-Algorithmus nicht effizient ist.
Fehlerbehebung
Informationen zum kumulativen Update
Kumulatives Update 2 für SQL Server 2012 SP1
Die Fehlerbehebung für dieses Problem wurde erstmals im kumulativen Update 2 veröffentlicht. Wenn Sie weitere Informationen zum beziehen dieses kumulativen Updatepakets für SQL Server 2012 SP1 erhalten möchten, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
2790947 Kumulatives Updatepaket 2 für SQL Server 2012 Service Pack 1Hinweis Da die Builds kumulativ sind, enthält jede neue Fix-Version alle Hotfixes und alle Sicherheitsupdates, die in der vorherigen Version von SQL Server 2012 SP1 enthalten sind. Wir empfehlen, dass Sie die neueste Fix-Version anwenden, die diesen Hotfix enthält. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
2772858 Die SQL Server 2012-Builds, die nach der Veröffentlichung von SQL Server 2012 Service Pack 1 veröffentlicht wurden
Kumulatives Update 5 für SQL Server 2012
Der Fix für dieses Problem wurde erstmals im kumulativen Update 5 veröffentlicht. Wenn Sie weitere Informationen zum beziehen dieses kumulativen Updatepakets für SQL Server 2012 benötigen, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
2777772 Kumulatives Updatepaket 5 für SQL Server 2012Hinweis Da die Builds kumulativ sind, enthält jede neue Fix-Version alle Hotfixes und alle Sicherheitsupdates, die in der vorherigen Version von SQL Server 2012 behoben wurden. Wir empfehlen, dass Sie die neueste Fix-Version anwenden, die diesen Hotfix enthält. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
2692828 Die SQL Server 2012-Builds, die nach der Veröffentlichung von SQL Server 2012 veröffentlicht wurden
SQL Server 2008 R2 Service Pack 2
Die Fehlerbehebung für dieses Problem wurde erstmals im kumulativen Update 3 veröffentlicht. Wenn Sie weitere Informationen zum beziehen dieses kumulativen Updatepakets für SQL Server 2008 R2 Service Pack 2 erhalten möchten, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
2754552 Kumulatives Updatepaket 3 für SQL Server 2008 R2 Service Pack 2Hinweis Da die Builds kumulativ sind, enthält jede neue Fix-Version alle Hotfixes und alle Sicherheitsupdates, die in der vorherigen Version von SQL Server 2008 R2 Service Pack 2 enthalten waren. Wir empfehlen, dass Sie die neueste Fix-Version anwenden, die diesen Hotfix enthält. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
2730301 Die SQL Server 2008 R2-Builds, die nach dem Veröffentlichen von SQL Server 2008 R2 Service Pack 2 veröffentlicht wurden
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.
Problemumgehung
Verwenden Sie eine der folgenden Methoden, um das Problem zu umgehen:
-
Verkleinern der Größe der BLOB-Spalte des großen Objekts
-
Entfernen Sie den NOLOCK -Hinweis aus der Abfrage.
-
Verringern Sie die Anzahl der CPUs, die von SQL Server verwendet werden.