Neue Parallelität und Planung Diagnose wurden auf SQL Server hinzugefügt

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 319892 - Produkte anzeigen, auf die sich dieser Artikel bezieht
# FEHLER: 102179 (SQLBUG_70)
# FEHLER: 356317 (SQLBUG_80)
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Hoher dynamischer bleiben enthält SQL Server mehrere interne Prozesse, um Systemstabilität sicherzustellen. Ein Beispiel ist der Sperren-Monitor, den Sie zum Erkennen und beheben Deadlocksituationen verwenden können.

SQL Server 7.0 Service Pack 4 (SP4) und SQL Server 2000 Service Pack 3 (SP3) erweiterte Zustandsüberwachung Prozess hinzugefügt haben. Health monitoring Verbesserungen wurden in den folgenden Bereichen durchgeführt:
  • Blockieren
  • Netzwerkprobleme
  • Eingabe/Ausgabe (e/A)
  • Speicher
  • CPU
Wenn SQL Server erkennt Health Probleme, eine Reihe von neuen Fehlermeldungen wie die folgende in SQL Server-Fehlerprotokoll protokolliert werden. Einzelheiten zu diesen Bedingungen Fehlermeldung finden Sie unter "Weitere Informationen" Abschnitt dieses Artikels.

SQLServer 7.0

Fehler 1223: Kennung %d: %d kann nicht "% s" für Ressource "% s" Sperre da potenzielle Deadlocks auf Taskplaner %d für die Ressource vorhanden ist. Prozess-ID %d: %d Sperre eine "% h" für diese Ressource.

SQLServer 2000

Fehler 1229: Prozess-ID %d: %d besitzt Ressourcen, die Prozesse auf Planer % d blockieren.
Die neue Fehlermeldungen enthalten die folgenden Datenreihe.

Erweiterte Sperren erkennen: 1223, 1229
Planer Hung erkennen: 17881, 17883
allen Zeitplanungsmodulen Hung Erkennung: 17882, 17884
Warnung Beachten Sie, dass ein Leistungsproblem des zugehörigen häufig das Ergebnis einer Bedingung ist, die zuvor festgestellt wurde. Sie müssen im SQL Server-Fehlerprotokoll und die Systemereignisprotokolle, sorgfältig, um die eigentliche Ursache ermitteln untersuchen.

Beispielsweise kann 17883 Fehlermeldung ein Planer Problem hinweisen. Allerdings das Fehlerprotokoll möglicherweise eine vorhergehenden Ausnahme, die fälschlicherweise der SQL Server-Prozess in einem schlechter Zustand verlassen anzeigen oder die Anwendung kann eine schwerwiegende Bedingung blockierende verursacht haben.
Hinweis: Microsoft versucht, alle Inhalte, die neuesten 17883 Bedingungen Stand zu halten. 17883 Fehlermeldung ist jedoch eine Zustand Erkennung Nachricht, die aus vielen Gründen ausgelöst werden kann. Microsoft hat nicht nur bekannte Probleme mit der SQL Server-Software-Produkt korrigiert aber 17883 Fehler in einer Vielzahl von Situationen, die die SQL Server-Software zusammenhängen auch aufgetreten. Z. B. ist der Fehler mit externen Anwendung CPU-Verbrauch und Hardwarefehler aufgetreten. Sie müssen die Ursache des 17883 Fehlermeldung feststellen, ob Sie eine unerwünschte Wiederholungen des Fehlers vermeiden möchten.

Weitere Informationen

Dieser Abschnitt stellt die Integrität Verbesserungen und die zugeordneten Fehlermeldungen, die in der SQL Server-Fehlerprotokoll protokolliert werden können.

UMS

Um einige zusätzliche Zustand Diagnose besser zu verstehen, müssen Sie zunächst verstehen, wie SQL Server eine Hilfsdatei User Mode planen (UMS) ums.dll verwendet.

Sowohl SQL Server 7.0 und Microsoft SQL Server 2000 verwenden logische Planer. Diese Planer helfen sicherzustellen, dass SQL Server Betriebssystem Ressourcenverwendung in Bezug auf Schlüssel Aktion Datenbankpfade maximiert. Die UMS-Schicht stellt sicher, dass SQL Server ordnungsgemäß Win32-Ereignisse, verwendet um streng Thread und Fiber (oder beide) steuern planen Sichtbarkeit für das Betriebssystem. Durch streng steuern die Threads oder Fibers, die ausgeführt werden können, kann SQL Server CPU-Auslastung maximieren, im Zusammenhang mit Datenbank-Primitive wie z. B. sperren.

Z. B. logische ermöglicht Sperre Waiters in den Ruhezustand (WaitForSingleObject auf einem Win32-Ereignis) planen, bis des Besitzers der Sperre frei, die Sperren und Signalen (SetEvent), um reaktiviert.

Erweiterte Sperre Erkennung

Der Sperren-Monitor wurde erweitert, um ein (Workerthread) Ressource Ebene blockieren Szenario zu erkennen. Wenn eine SPID, die besitzt eine Sperre derzeit für den Planer in der Warteschlange ist, da alle zugewiesenen Arbeitsthreads erstellt wurden und alle zugeordneten Arbeitsthreads in einer un-resolvable Wartezustand befinden, wird die folgende Fehlermeldung in SQL Server-Fehlerprotokoll geschrieben:

SQLServer 7.0

Fehler 1223: Kennung %d: %d kann nicht "% s" für Ressource "% s" Sperre da potenzielle Deadlocks auf Taskplaner %d für die Ressource vorhanden ist. Prozess-ID % d: % d Sperre eine "% h" für diese Ressource.
Parameter Beschreibung:
  1. SPID wartet
  2. Wartet ECID (Sub Prozess ausführen-ID)
  3. Sperre Modusname
  4. Ressourcenname
  5. Logische UMS-Planer ID
  6. Besitzende SPID
  7. Besitzende ECID
  8. Besitzende Ressourcenname

SQLServer 2000

Fehler 1229: Prozess-ID %d: %d besitzt Ressourcen, die Prozesse auf Planer % d blockieren.
Parameter Beschreibung:
  1. Besitzende SPID
  2. Besitzende ECID (Sub Prozess ausführen-ID)
  3. Besitzende logische UMS-Planer ID

Ablaufverfolgungsflags

SQL Server enthält ein Ablaufverfolgungsflag Zustand Berichterstattung deaktivieren.

Verwenden Sie eine der folgenden Methoden, um reporting Verhalten zu deaktivieren:
  • Richten Sie einen Startparameter (-T ### )
  • Verwenden Sie DBCC Traceon ( ### )
SQLServer 7.0 :-T1216

SQLServer 2000 :-T1261

Hinweis: Dies ist kein typographischer Fehler. -T1216 auf SQL Server 2000 ist bereits als das Ablaufverfolgungsflag zugeordnete Deadlock-Ausgabe verwendet. Stattdessen wird daher 1261 verwendet.

Beispielszenario

Client 1 stellt eine Verbindung zu SQL Server her.

Client 1 führt einen Transact-SQL-Befehl, der startet eine Transaktion und Änderung von Daten führt.

Beispielsweise:
begin tran
update authors set au_lname = 'test'
Client 1 wird IDLE angezeigt wird, als im Ruhezustand und warten einen Befehl mit einer geöffneten Transaktion in der Sysprocesses -Systemtabelle.

Clients 2 bis 255: ungefähr 254 mehr Clients melden Sie sich SQL Server und Ausgeben einer SELECT aus der Tabelle Authors. Diese Clients werden alle auf dem ursprünglichen Update blockiert werden.

Client 1 versucht, einen Commit die Transaktion auszuführen, jedoch wird in Warteschlange (da alle Arbeitsthreads von Clients 2 bis 255 gebunden sind.

Blockieren

Dieses Fehlermeldung gibt i. d. r. eine erweiterte blockierende Situation. Bei jeder Ausführung der Sperre-Monitor (ungefähr alle 5 Sekunden), können Nachrichten im Fehlerprotokoll von SQL Server hinzugefügt werden.

Hinweis: Eine Nachricht wird für jede SPID/ECID protokolliert, der die Ressource Problem. Daher können mehrere Nachrichten während der gleichen Lock Monitor Iteration protokolliert werden.

SQL Server werden diese Situation nicht automatisch aufgelöst. Allerdings wird es das Problem eine Fehlermeldung (1223 oder 1229) entsprechend angeben. Wenn dieses Problem auftritt, können Sie ihn in eine Reihe von Möglichkeiten beheben.

Sperren oder Abfragetimeout

Wenn die Abfragen eine Sperre oder ein Abfragetimeout verwenden, wird die Situation häufig selbst lösen bei des Timeouts auftreten. Die Situation erfordert jedoch Untersuchung, da er eine Verringerung der Anwendung ausgelösten Parallelität anzeigt.

Transact SQL KILL

Wenn der Administrator zum Abfragen der Systemtabelle Sysprocesses kann, können Sie den Transact-SQL KILL-Befehl verwenden, um die blockierende SPID beendet und beenden die entsprechenden SPIDS BLOCKIERT Arbeitsthreads frei und das System zu einem normalen Zustand zurückkehren.
251004Zum Blockieren von SQL Server 7.0 überwachen
271509Zum Überwachen von SQL Server 2000 blockieren
263889SQL aufgrund von [COMPILE] blockierende Sperren

Unterstützung

Wenn Sie die Sysprocesses -Systeminformationen Tabelle beziehen können, dann erhalten Sie ein Prozess Speicherabbild des Prozesses (sqlservr.exe), und fordern Sie Unterstützung von Microsoft SQL Server weitere Untersuchungen.

Parallele Abfragen

In seltenen Fällen kann dieser Fehlermeldung wegen einer schlechten parallle Abfrage Plan Auswahl auftreten. Wenn die parallele Abfrage, auswählt eine große Anzahl von verfügbaren SQL Server-Mitarbeiter mit die Abfrage abgeschlossen, kann es SQL Server-Arbeitspool erschöpfen. Die Systemtabelle Sysprocesses enthält eine ECID Spalte um die Anzahl der Mitarbeiter anzugeben, die für die einzelnen SPID verwendet werden. ECID Wert in Beziehung zu der physischen CPUs auf dem Computer hoch er ist, im Allgemeinen ein Hinweis auf eine schlecht optimierten Abfrage. Überprüfen Sie den Abfrageplan und die Option max Degree of Parallelism (MAXDOP) Abfrage, um die entsprechende Abfrage richtig zu optimieren.

Planer Frage

Die Anzahl der logischen Planer ankommt. Beim Starten von SQL Server wird die Einstellung von max Worker threads auf logische Planer gleichmäßig aufgeteilt. Die Anzahl der CPUs, zu SQL Server steigt ist die Worker-Warteschlange mehr unterteilt. Ein, das unerwünschte Transaktionsaktivität Gültigkeitsbereich aufweist können Ressource Mangel an Szenarios schneller Anwendungsmanifest Wenn mehrere Prozessoren beteiligt sind. Für diesen Typ von Szenario wird der Transaktionsbereich Anwendungen sofort korrigiert.

Die folgende Tabelle zeigt die Worker Pool Zuordnungen anhand der Anzahl der CPUs, wenn die Sp_configure Prozedur die Einstellung für max Workerthreads gespeichert entspricht 255.
Tabelle minimierenTabelle vergrößern
CPUs blockieren Kette Länge
1255
2128
464
832
1616
Es wird empfohlen, dass die Einstellung von max Worker threads den Standardwert 255. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
319942Zum Ermitteln der richtigen SQL Server-Konfigurationseinstellungen

UMS-Zustand

Eine neue interne Routine wurde hinzugefügt, um den Zustand der logischen Planer alle 60 Sekunden zu überprüfen. Wenn der Planer erachtet wird, wie angehalten, oder es reagiert nicht mehr, wird die entsprechenden Fehlermeldung in der SQL Server-Fehlerprotokoll protokolliert. Ein Fehler protokolliert alle 60 Sekunden, bis das Problem behoben ist.

Wie bereits erwähnt, sind diese Meldungen häufig ein Hinweis auf eine vorherige Ereignis. Sorgfältig finden Sie in der SQL Server Fehler protokollieren und Anwendungsereignisprotokollen können Sie die Ursache des Problems ermitteln.

Hinweis: Ein Snapshot wird alle 60 Sekunden ausgeführt. Daher kann sich 120 Sekunden, bevor die Bedingung zuerst erkannt wird.

SQLServer 7.0

17881 Fehler: - der Taskplaner %1! ld! scheint getrennt werden. PSS 0 x % 2! p!, EC 0 x % 3! p!, UMS-Kontext 0 x % 4! p!
Fehler: 17882 - vorhanden mögliche Deadlocks auf allen Zeitplanungsmodulen

Ablaufverfolgungsflags

Sie können diese beiden Überprüfungen deaktivieren, wenn Starten von SQL Server 7.0 mit der -T1217 Startparameter.

SQLServer 2000 SP3

8.00.760 (SP3)
17883 Fehler: - der Taskplaner %1! ld! scheint getrennt werden. SPID %2! ld!, ECID % 3! ld!, UMS-Kontext 0 x % 4! p!

8.00.765

Beginnend mit der 8.00.765 hot beheben, die Nachricht wurde aussagekräftigere werden geändert.
Fehler: 17883 - Prozess %1! ld!: % 2! ld! (%3! lx!) UMS-Kontext 0 x % 4! p! auf Taskplaner %5 nicht ermöglicht wird! ld!

Beispiel:
2003-03-21 08:22:20.27 Server Error: 17883, Schweregrad: 1, Status: 0
2003-03-21 08:22:20.27 Server Prozess 51:0 (Dbc) UMS Kontext 0x018DA930 scheint auf Taskplaner 0 nicht ermöglicht.
2003-03-21 08:22:22.45 Server Stapel Signatur für das Speicherabbild ist 0 x 00000000
Fehler: 17884 - vorhanden mögliche Deadlocks auf allen Zeitplanungsmodulen

Ablaufverfolgungsflags

Sie können diese beiden Überprüfungen deaktivieren, wenn Sie SQL Server Starten mit dem - T1260-Start-Parameter.

SQL Server 2000 MiniDump-Datei

Klicken Sie mit SQL Server 2000 SP3 starten, wurde die Möglichkeit, einen MiniDump-Prozess erfassen implementiert. Beginnend mit 8.00.765 erstellen, eine MiniDump-Datei wird generiert, wenn SQL Server zuerst einen angehaltene Planer erkennt.

Um die fortgesetzte Generierung der MiniDump-Dateien für diese Fehlermeldungen (17883 and17884) zu verhindern, ist das Standardverhalten um eine einzelne MiniDump-Datei für die Lebensdauer des SQL Server-Prozess zu erzeugen. Um eine MiniDump-Datei für jedes Vorkommen der Nachrichten zu aktivieren, aktivieren Sie das Ablaufverfolgungsflag - T1262.

Die MiniDump-Datei wird in der LOGARITHMUS erzeugt Ordner und SQLDmpr ### .mdmp. Dieser Speicherabbilddatei kann ausgewertet werden von Microsoft Support, um die Ursache des Problems festzustellen.

Fehler 17881 und Fehler 17883

Diese Meldungen geben an einer einzigen UMS-Scheduler Rendite Probleme auftreten, hat. Die Systemüberwachung hat entdeckt anscheinend mit einem Workerthread-Scheduler, die anderen Mitarbeiter mit dem Fortschritt nicht zugelassen ist und der Planer ist als nicht mehr reagiert gekennzeichnet wird. Ein Planer, die nicht mehr reagiert beendet hat im Allgemeinen ist ein Fehler mit der SQL Server-Produkt oder eine externe Komponente (XProc, COM-Objekt, usw.).

Im folgenden werden Beispiele von bekannten 17833 Bedingungen. Stellen Sie sicher, dass der Microsoft Knowledge Base nach verwandten Artikeln zu durchsuchen. Wenn Ihr System einen aktualisierten Patch erforderlich ist, wenden Sie Sie entsprechend.
815056Update: Der Prüfpunkt-Prozess kann SQL Server Datenbank-Aktivität verzögern und führt nicht zu Scheduler Fehler korrekt verursacht: 17883 auftreten
810885High-End-Datenträger-Untersysteme können Fehler 17883 auftreten.
Wenn Sie die Hauptursache nicht sofort feststellen können, finden Sie in das Fehlerprotokoll Probleme und Einbindung in extended Support Bemühungen.

Wenn ein Planer nicht richtig reagiert, können Sie allgemeine Parallelität für SQL Server reduzieren. SQL Server kann auch erscheinen angehalten werden, oder es könnte reagiert.

Fehlermeldung 17882 und 17884

Diese Meldungen zeigen an, dass alle UMS-Planer festgestellt haben Probleme ergeben. Dies bedeutet eine breit Systemproblem SQL Server und SQL Server reagiert haben erscheinen. Bei der 17881 und 17883-Meldungen, das Fehlerprotokoll, und Microsoft Knowledge Base weitere Informationen finden Sie in. Falls erforderlich, sollten Sie in Erweiterte Unterstützung Bemühungen.

Eigenschaften

Artikel-ID: 319892 - Geändert am: Mittwoch, 18. Mai 2005 - Version: 8.0
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft SQL Server 2000 Service Pack 3
  • Microsoft SQL Server 7.0 Service Pack 4
Keywords: 
kbmt kbsample kberrmsg kbbug kbfix kbinfo KB319892 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: 319892
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