Microsoft vertreibt Microsoft SQL Server 2008 R2 Service Pack 1 (SP1) oder Microsoft SQL Server 2012-Fixes in einer herunterladbaren Datei. Da die Fixes kumulativ sind, enthält jede neue Version alle Hotfixes und alle Sicherheitsupdates, die im vorherigen SQL Server 2008 R2 Service Pack 1 (SP1) oder Microsoft SQL Server 2012-Update veröffentlicht wurden.
Problembeschreibung
Stellen Sie sich folgendes Szenario vor:
-
Sie installieren eine Instanz von Microsoft SQL Server 2008 R2 oder Microsoft SQL Server 2012 auf einem Computer.
-
Gleichzeitige Anweisungen, die wie folgt aussehen, werden in der Instanz ausgeführt:
CREATE PROC p AS RETURN (
query
); EXEC p;
Oder Sie führen eine Abfrage aus, die den folgenden Code enthält:
IF EXISTS(
subquery
);
-
Die CPU-Auslastung ist durchweg hoch, und die Arbeits Threads sind im ausführbaren Zustand.
-
Der Konflikt für die QUERY_EXEC_STATS Spinlock ist groß. Beispielsweise erhöhen sich die Anzahl der Drehungen, die möglichen Kollisionen und die Rückstandswerte für die QUERY_EXEC_STATS Spinlock schnell.Hinweis Weitere Informationen zum Überwachen der QUERY_EXEC_STATS -Spinlock finden Sie im Abschnitt "Weitere Informationen".
In diesem Szenario kann es zu einer langsamen Leistung kommen.
Ursache
Dieses Problem tritt auf, weil SQL Server 2008 R2 oder SQL Server 2012 einige Speicherstrukturen zu globalen Statistiken erstellt und zerstört, anstatt Sie zu Zwischenspeichern. Dies führt zu einem Leistungsengpass.
Fehlerbehebung
Informationen zum kumulativen Update
SQL Server 2012
Die Fehlerbehebung für dieses Problem wurde erstmals im kumulativen Update 1 für SQL Server 2012 veröffentlicht. Wenn Sie weitere Informationen zu diesem kumulativen Updatepaket erhalten möchten, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
2679368 Kumulatives Updatepaket 1 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. Microsoft empfiehlt, die neueste Fix-Version zu verwenden, 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 Sie müssen einen SQL Server 2012-Hotfix auf eine Installation von SQL Server 2012 anwenden.
Kumulatives Updatepaket 5 für SQL Server 2008 R2 SP1
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 2008 R2 SP1 erhalten möchten, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
2659694 Kumulatives Updatepaket 5 für SQL Server 2008 R2 SP1Hinweis 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 SP1 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:
2567616 Die SQL Server 2008 R2-Builds, die nach der Veröffentlichung von SQL Server 2008 R2 SP1 veröffentlicht wurden
Weitere Informationen
Um die QUERY_EXEC_STATS Spinlock zu überwachen, passen Sie die Verzögerung und die Anzahl der Iterationen entsprechend Ihrer Umgebung im folgenden Code an, und führen Sie Sie dann aus:
SET NOCOUNT ONCREATE TABLE #spins([Spinlock Name] varchar(50),Collisions numeric,Spins numeric,[Spins/Collision] float,[Sleep Time (ms)] numeric,Backoffs numeric, InsertTime datetime DEFAULT GETDATE())DECLARE @counter int = 1WHILE @counter < 10 BEGIN INSERT INTO #spins ([Spinlock Name], Collisions, Spins, [Spins/Collision], [Sleep Time (ms)], Backoffs) EXECUTE ('DBCC SQLPERF (''SPINLOCKSTATS'') WITH NO_INFOMSGS') WAITFOR DELAY '00:00:05' SET @counter +=1 ENDSELECT * FROM #spins WHERE [Spinlock Name] = 'QUERY_EXEC_STATS' ORDER BY InsertTimeDROP TABLE #spins
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.