2012-03-26 8 views
-1

Ich fand eine der Anwendung wurde für ein paar Tage fest.sql server 2008 R2-Update ist mit sos_scheduler_yield stecken wettetyp

Nach der Analyse konzentrierte ich mich auf das Scheduler-Problem des SQL Server 2008 R2.

Ich führe die Abfrage select * from master.dbo.sysprocesses und fand die Update-Abfrage infür eine lange Zeit und die CPU-Spalte ist der Wert ist extrem hoch (4158738), und der Status ist runnable.

ich erneut versucht die Anwendung beenden und neu starten, auch DBCC freesystemcache, FREEPROCCACHE, Update Statistiken über die Tabelle, die die Anwendung auf aktualisieren möchten ...

aber das Problem noch aussteht.

Kann mir jemand sagen, was die CPU-Spalte genau bedeutet, was der hohe Wert bedeutet und wie kann ich dieses Problem beheben?

THX

Antwort

0

Der SOS_SCHEDULER_YIELD Wartetyp tritt auf, wenn eine Aufgabe für die CPU-Zeit wartet. Dies zeigt normalerweise etwas sonst verbraucht CPU-Zeit, die diese Aufgabe stattdessen verwenden möchte. Du könntest die andere Aufgabe erledigen, aber das ist hart, du könntest mehr CPU einstecken, aber das ist teuer, du könntest MAXDOP für deine update -Anweisung setzen, damit es nicht versucht, die CPUs zu benutzen, die sonst belegt sind, aber das kann führen zu längeren Ausführungszeiten (oder kürzer).

Die kurze Antwort ist: Etwas ist in Ihrer Basis stehlen Ihre CPU.

Die lange Antwort ist eine gründliche Analyse, und das ist ein bisschen über den Umfang basierend auf den Informationen, die Sie bereitgestellt haben.

+0

Wirklich schätzen Sie Ihre schnelle Antwort :) Also der Cup-Wert bedeutet, dass hos lange diese Abfrage auf die Ausführung gewartet hat? – user1287431

+0

Und wie MAXDOP für Update-Anweisung festlegen? Ich kann MAXDOP nur auf die Instanz – user1287431

+0

setzen. Ich würde sagen, wie lange es gewartet hat, bis der Scheduler der Task CPU-Zeit gibt. – cairnz