Update: Langsame Leistung tritt im SQL Server 2008 R2 oder SQL Server 2012 Wenn hoher CPU-Auslastung mit Konflikten über die Spinlock QUERY_EXEC_STATS beobachtet wird

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 2662301 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Auf dieser Seite

Microsoft vertreibt Microsoft SQL Server 2008 R2 Service Pack 1 (SP1) oder Microsoft SQL Server 2012 in einer downloadbaren Datei behebt. Da die Updates kumulativ sind, enthält jede neue Version alle Hotfixes und alle Sicherheitsupdates, die mit der vorherigen SQL Server 2008 R2 Service Pack 1 (SP1) oder Microsoft SQL Server 2012 enthalten waren update-Release.

Problembeschreibung

Betrachten Sie das folgende Szenario:
  • Eine Instanz des Microsoft SQL Server 2008 R2 oder Microsoft SQL Server 2012 wird auf einem Computer installieren.
  • Gleichzeitige Anweisungen, die den folgenden ähneln, werden in der Instanz ausgeführt:
    CREATE PROC p AS RETURN (
    query
    ); EXEC p;
    Oder führen Sie eine Abfrage, die den folgenden Code enthält:

    IF EXISTS(
    subquery
    );
  • Die CPU-Auslastung konstant hoch ist, und die Arbeits-Threads sind ausführbar.
  • Die Anzahl von Konflikten für die QUERY_EXEC_STATS Spinlock ist hoch.
    Die Anzahl an Spinvorgängen, möglicher Konflikte und die Back-off-Werte für die QUERY_EXEC_STATS Spinlock schnell erhöhen.
    Hinweis Weitere Informationen zum Überwachen der QUERY_EXEC_STATS Spinlock, finden Sie im Abschnitt "Weitere Informationen".

In diesem Szenario möglicherweise Leistungseinbußen auftreten.

Ursache

Da zu diesem Problem tritt auf, SQL Server 2008 R2 oder SQL Server 2012 erstellt und einige Speicherstrukturen über globale Statistiken, statt sie zerstört. Dadurch wird einen Performance-Engpass.

Lösung

Kumulatives Update-Informationen

SQL Server-2012

Die Fehlerbehebung für dieses Problem wurde zuerst im kumulativen Update 1 für SQL Server 2012 veröffentlicht. Weitere Informationen über dieses kumulative Updatepaket finden Sie in folgendem Artikel der Microsoft Knowledge Base anzuzeigen:
2679368 Kumulatives Updatepaket 1 für SQL Server 2012
Hinweis Da die Builds kumulativ sind, jede neue Version enthält alle Hotfixes und alle die Sicherheitsupdates, die mit der vorherigen SQL Server 2012 enthalten waren. Microsoft empfiehlt, dass Sie sich die neueste Version, die diesen Hotfix enthält. Weitere Informationen finden Sie in folgendem Artikel der Microsoft Knowledge Base anzuzeigen:
2692828 Die SQL Server 2012 erstellt, die nach der Freigabe von SQL Server 2012
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

Die Fehlerbehebung für dieses Problem wurde erstmals im kumulativen Update 5 veröffentlicht. Weitere Informationen dazu, wie Sie dieses kumulative Updatepaket für SQL Server 2008 R2 SP1 erhalten finden Sie in folgendem Artikel der Microsoft Knowledge Base anzuzeigen:
2659694 Kumulatives Updatepaket 5 für SQL Server 2008 R2 SP1
Hinweis Da die Builds kumulativ sind, jede neue Version enthält alle Hotfixes und alle die Sicherheitsupdates, die mit der vorherigen SQL Server 2008 R2 SP1 enthalten waren. Wir empfehlen, dass Sie sich die neueste Version, die diesen Hotfix enthält. Weitere Informationen finden Sie in folgendem Artikel der Microsoft Knowledge Base anzuzeigen:
2567616 Die SQL Server 2008 R2 erstellt, die nach der Freigabe von SQL Server 2008 R2 SP1

Weitere Informationen

Um die Spinlock QUERY_EXEC_STATS zu überwachen, passen Sie die Verzögerung und die Anzahl der Iterationen entsprechend Ihrer Umgebung in den folgenden Code, und führen Sie ihn dann:

SET NOCOUNT ON
CREATE 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 = 1
WHILE @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
      END
SELECT * FROM #spins WHERE [Spinlock Name] = 'QUERY_EXEC_STATS' ORDER BY InsertTime
DROP TABLE #spins

Status

Microsoft hat bestätigt, dass dieses Problem auf die im Abschnitt "Gilt für" aufgeführten Microsoft-Produkte zutrifft.

Eigenschaften

Artikel-ID: 2662301 - Geändert am: Donnerstag, 12. April 2012 - Version: 1.0
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Standard
Keywords: 
kbqfe kbfix kbexpertiseadvanced kbsurveynew kbmt KB2662301 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 2662301
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com