Artikel-ID: 897284 - Geändert am: Mittwoch, 5. August 2009 - Version: 3.0 Diagnose in SQL Server 2000 SP4 und späteren Versionen feststellen, angehaltene und hängen Ausgabeoperationen
Auf dieser SeiteZusammenfassungEin Datenbank-Managementsystem (DBMS) wie z. B. SQL Server beruht auf der Aktualität von Datei-Eingabe und Ausgabe (e/A) Operationen. Kann eine der folgenden Elemente hängen erstellen oder e/a-Probleme angehalten. Diese Probleme können schnell eine nachteilige Auswirkungen auf SQL Server-Reaktionsfähigkeit und Leistung aufweisen:
Informationsmeldung ErklärungTabelle minimieren
http://technet.microsoft.com/en-us/library/cc966500.aspx
(http://technet.microsoft.com/en-us/library/cc966500.aspx)
Weitere InformationenKlemmen e/a- und angehaltene e/AKlemmen e/AKlemmen e/A wird als e/a-Anforderung definiert, die nicht abgeschlossen wird. Häufig ist hängen hängen IRP. Eine hängen e/A-Bedingung beheben möchten, müssen Sie in der Regel den Computer neu starten oder führen Sie einen ähnlichen Aktion. Eine hängen e/A-Bedingung gibt i. d. r. einen der folgenden:
Angehaltene e/AAngehaltene e/A wird als e/a-Anforderung definiert, die abgeschlossen wird. Jedoch hat der e/a-Vorgang übermäßig viel Zeit in Anspruch. Angehaltene e/A-Verhalten tritt i. d. r. aufgrund eines der folgenden Gründe:
SQL Server angehalten e/A und e/a-Aufzeichnung und Berichterstellung hängenMicrosoft SQL Server-Support behandelt vielen Fällen jedes Jahr, die hängen oder angehaltene e/A-Probleme betreffen. Wie weiter unten beschrieben, werden diese e/A-Probleme in verschiedene Arten angezeigt. E/a-Probleme sind einige der schwierigsten Probleme diagnostizieren und zu debuggen. E/a-Probleme erfordern viel Zeit und Ressourcen für das Debuggen von Microsoft und vom Kunden. Der Berichtsfeatures, die in SQL Server 2000 SP4 und in späteren Versionen erheblich hinzugefügt wurden, verringert die Zeit, die für ein e/A-Problem identifizieren erforderlich ist.Die Berichterstellung und die Aufzeichnung von e/a-Anforderungen wurden auf einer pro Datei-Basis entworfen. Die Erkennung und die Berichterstellung angehaltene und hängen e/A-Anforderungen sind zwei separate Aktionen. AufzeichnenEs gibt zwei Speicherorten in SQL Server, in dem Datensatz Aktion stattfinden. Die erste Position in der Aufnahme auftritt, ist, tatsächlich Abschluss der Operation e/A. Wenn eine e/A-Anforderung mehr als 15 Sekunden dauert, wird eine Datensatz-Operation. Die zweite Position in der Aufzeichnung auftritt, ist, wenn lazy Writer ausgeführt wird. Wenn lazy Writer ausgeführt wird, der lazy Writer überprüft, alle ausstehenden Daten und alle ausstehenden Protokoll Datei e/a-Anforderungen. Wenn 15-Sekunden-Schwellenwert überschritten wurde, tritt eine Datensatz-Operation.BerichterstellungBerichterstellung tritt in Intervallen, die 5 Minuten oder mehr voneinander sind. Berichterstellung tritt ein, wenn die nächste e/A-Anforderung auf die Datei vorgenommen wird. Wenn ein Datensatz Aktion eingetreten ist und mindestens 5 Minuten seit übergeben haben letzte Bericht ist aufgetreten, die Meldung angezeigt, die im Abschnitt "Zusammenfassung" genannt wird in der SQL Server-Fehlerprotokoll geschrieben wird.15-Sekunden-Schwellenwert ist nicht veränderbaren. Sie können mit Ablaufverfolgungsflag 830 angehaltene und hängen e/A-Erkennung deaktivieren jedoch nicht empfohlen, dass Sie dies tun. Verwenden, um Erkennung zu deaktivieren, wenn SQL Server startet den - T830-Startparameter. Mithilfe von-T830 Startparameter Erkennung bei jedem deaktivieren wird SQL Server gestartet wird. Um die Erkennung für eine Instanz von SQL Server zu deaktivieren, die momentan ausgeführt wird, verwenden Sie die folgende Anweisung: DBCC Traceoff (830, -1) Diese Einstellung ist nur wirksam, für die Lebensdauer des SQL Server-Prozess. Hinweis: Eine e/A-Anforderung, die angehalten oder hängen wird, wird nur einmal gemeldet. Wenn die Nachricht meldet, dass 10 e/A-Anforderungen angehalten werden, treten diese 10 Berichte nicht erneut. Wenn die nächste Nachricht meldet, dass 15 e/A-Anforderungen angehalten werden, also, dass 15 neue e/A-Anforderungen angehalten werden müssen. Nachverfolgen das e/A-Anforderungspaket (i/o Request Packet, IRP)SQL Server verwendet die standardmäßigen Microsoft Windows-API-Aufrufe zum Lesen und Schreiben von Daten. Beispielsweise verwendet SQL Server die folgenden Funktionen:
http://support.microsoft.com
(http://support.microsoft.com/)
Hinweis: Kerneldebuggen kann ein invasiver Prozess sein, da Kerneldebuggen Sie das System zum Debuggen Aktionen abschließen beenden erfordern kann. Wir empfehlen, festzustellen, ob Updates für die folgenden Elemente verfügbar sind:
Planen Aktionen, die Systemleistung und AbfrageInsgesamt kann die Systemleistung eine wichtige Rolle in e/a-Verarbeitung wiedergeben. Wenn Sie Berichte von angehaltene oder hängen e/a-Vorgängen untersuchen sollten Sie den allgemeinen Zustand des Systems berücksichtigt ergreifen. Übermäßige Auslastung können bewirken, dass das gesamte System langsam sein. Dies umfasst e/a-Verarbeitung. Das Verhalten des Systems zum Zeitpunkt des Problems kann ein entscheidender Faktor bestimmen, die Ursache des Problems sein. Beispielsweise kann CPU-Auslastung hoch wird oder wenn CPU-Auslastung hoch, bleibt Wenn das Problem auftritt, dieses Verhalten angeben, dass ein Prozess auf dem System so viel CPU verwendet wird, dass andere Prozesse beeinträchtigt wird sind.LeistungsindikatorenUntersuchen Sie die folgenden Leistungsindikatoren für bestimmte e/A-Pfadinformationen, um die Serverleistung zu überwachen:
Achten Sie darauf, mit den Leistungsindikatoren, da SQL Server alle Vorteile der asynchronen e/A-Funktionen nutzt, die die Datenträger-Warteschlangenlängen stark push. Daher werden mehr Datenträger Warteschlangenlängen allein kein Problem dar. In Windows-Systemmonitor, überprüfen Sie die Leistungsindikatoren "Physikalischer Datenträger: Bytes/s"für jeden betroffenen Datenträger und vergleichen die Rate der Aktivität für die Leistungsindikatoren"Process: e/a-Daten Bytes/S"und ?: IO Weitere Bytes/s eingeben Anforderungen für jeden Prozess feststellen, ob ein bestimmter Satz von Prozessen übermäßige e/A erzeugt. Es gibt verschiedene andere e/A bezogene Leistungsindikatoren verfügbar in den Prozess-Objekt, detailliertere Informationen anzeigt. Wenn Sie feststellen, dass eine Instanz von SQL Server für eine übermäßige e/a-Belastung des Servers verantwortlich ist, lesen Sie den nächsten Abschnitt auf ? Indizes und Parallelität eingeben. Eine detaillierte Erörterung zum Erkennen und Lösen von e/a-Engpässe überprüfen Sie die im Abschnitt ? e/a-Engpässe eingeben in der MSDN-Whitepaper Troubleshooting Performance Problems in SQL Server 2008 (http://msdn.microsoft.com/en-us/library/dd672789.aspx) oder Troubleshooting Performance Problems in SQL Server 2005 (http://technet.microsoft.com/en-us/library/cc966540.aspx) . Indizes und ParallelitätHäufig auftreten Bursts der e/A ein Index vorhanden ist. Dieses Verhalten kann den e/A-Pfad stark ablegen. Ein Durchlauf mit Index aktivieren-Assistenten (ITW) helfen, e/A-Druck auf dem System zu beheben. Wenn eine Abfrage aus dem Index statt von einem Tabellenscan Vorteile oder einer Sortier- oder Hash vielleicht auch verwendet, kann das System die folgenden Vorteile zugreifen:
Praktische Beispiele von Microsoft SQL Server-SupportDie folgenden Beispiele haben von Microsoft SQL Server-Support und Plattformen Escalation Support behandelt wurde. Diese Beispiele sollen Geben Sie einen Rahmen als Referenz und Hilfe Satz Ihre Erwartungen zu angehalten und e/a-Situationen hängen und über beeinträchtigt werden oder möglicherweise durch ein System zu reagieren. Es gibt keine spezielle Hardware oder Reihe von Treibern, die über ein anderes alle bestimmtes Risiko oder erhöhte Risiko darstellen. Alle Systeme sind in dieser Hinsicht identisch.Beispiel 1: Ein Protokoll schreiben, die für 45 Sekunden hängenEine SQL Server-Protokoll Datei Schreibvorgang wurde regelmäßig für ungefähr 45 Sekunden hängen. Das Protokoll schreiben war nicht rechtzeitig beendet. Dies erstellt eine blockierende Bedingung, die zu Client 30-Sekunden-Timeouts geführt hat.Die Anwendung einen Commit für SQL Server gesendet und das Commit wurde als ein Protokoll Schreibvorgang ausstehende hängen. Dieses Verhalten verursacht die Abfrage weiterhin Sperren und um eingehende Anforderungen von anderen Clients blockieren. Andere Clients zur Timeout dann gestartet. Dies verstärkt das Problem, da die Anwendung nicht entwickelt wurde, um offene Buchungen beim Auftreten eines Abfragetimeout rückgängig zu machen. Dies erstellt Hunderte von offenen Buchungen, die Sperren halten, wurden. Daher ist eine schwerwiegende blockierende Situation aufgetreten. Weitere Informationen zu Transaktion behandeln und zu blockieren finden Sie im folgenden Artikel der Microsoft Knowledge Base: 224453
(http://support.microsoft.com/kb/224453/
)
Verstehen und Lösen von Blockierproblemen in SQL Server 7.0 und SQL Server 2000 Die Anwendung bedient eine Website mit Verbindungs-pooling. Mehrere Verbindungen blockiert wurde, erstellt der-Website weitere Verbindungen. Diese Verbindungen blockiert wurden, und der Zyklus fortgesetzt.Nach ungefähr 45 Sekunden beendet das Protokoll schreiben. Allerdings wurden zu diesem Zeitpunkt Hunderten von Verbindungen gesichert. Blockierende Probleme führte mehrere Minuten Zeit für die Wiederherstellung für SQL Server und die Anwendung zu. Zusammen mit der Anwendungsprobleme musste die angehaltene e/A-Bedingung eine sehr negative Auswirkung auf dem System. LösungDas Problem wurde auf eine hängen e/A-Anforderung in einem Treiber HBA (Host Bus Adapter) verfolgt. Der Computer hat mehrere HBA-Karten mit Failover-Unterstützung. Wenn eine HBA keine mit SAN (Storage Area Network Kommunikation war) oder hinter wurde, wurde der Timeoutwert "Wiederholungsversuche vor dem Failover" auf 45 Sekunden konfiguriert. Wenn das Zeitlimit überschritten wurde, wurde die e/A-Anforderung an den zweiten HBA weitergeleitet. Der zweite HBA verarbeitet die Anforderung und schnell abgeschlossen. Um solche Stall-Bedingungen zu vermeiden, empfohlene der Hardware-Hersteller eine "Wiederholungsversuche vor dem Failover" Einstellung von 5 Sekunden.Beispiel 2: Treiber Eingriff FilternViele antivirus-Software-Programme und Sicherung Produkte verwenden e/A-Filtertreiber. Diese e/A-Filtertreiber werden Teil des Stapels e/a-Anforderung, und Sie haben Zugriff auf die IRP-Anforderung. Microsoft Product Support Services hat angezeigt, verschiedene Probleme von Fehlern, die erstellen e/a-Bedingungen hängen oder e/A-Bedingungen in einer Filter-Treiber-Implementierung angehalten.Eine solche Bedingung wurde ein Filtertreiber für Sicherung verarbeiten, die eine Sicherung der Dateien, die bei der Sicherung geöffnet waren. Der Systemadministrator hat das SQL Server Daten Dateiverzeichnis in der Datei aufgenommen. Beim Auftreten der Sicherung hat versucht, das richtige Bild der Datei zu dem Zeitpunkt erfassen die Sicherung gestartet die Sicherung. Dadurch verzögert e/a-Anforderungen. Die e/A-Anforderungen wurden darf nur jeweils abgeschlossen, wie Sie von der Software verarbeitet wurden. Beim Starten der Sicherung gelöscht Leistung erheblich, da der e/A von SQL Server gezwungen, die jeweils abzuschließen. Zusammengesetzte das Problem war die Logik "jeweils" so, dass e/a-Vorgang nicht asynchron durchgeführt werden konnte. Daher, wenn SQL Server um eine e/A-Anforderung zu buchen und damit erwartet, wurde der Arbeitsprozess hängen in der Lese- oder Schreibzugriff Aufruf, bis die e/A-Anforderung abgeschlossen. Verarbeitungsaufgaben wurden z. B. einer SQL Server vorauszulesenden durch die Aktionen des Filtertreibers deaktiviert. Darüber hinaus links ein anderer Fehler im Filtertreiber die Aktionen "jeweils" im Prozess, auch wenn die Sicherung abgeschlossen wurde. Die einzige Möglichkeit zur Wiederherstellung Leistung war schließen und dann erneut die Datenbank oder SQL Server neu starten, damit das Dateihandle wurde veröffentlicht und ohne Interaktion der Filter-Treiber erneut erhalten. LösungUm dieses Problem zu beheben, wurden die SQL Server-Datendateien aus der Sicherungsvorgang Datei entfernt. Software-Hersteller korrigiert auch Problem, das die Datei im Modus "jeweils" verbleibt.Beispiel 3: Alle FehlerViele höhere Endsystemen sind multichannel e/A-Pfade, Lastenausgleich oder ähnliche Aktivitäten zu behandeln. Microsoft Software Service hat Probleme mit der Lastenausgleich-Software gefunden, eine e/A-Anforderung schlägt fehl, wobei die Software behandelt die Fehlerbedingung nicht korrekt. Die Software kann unendliche Wiederholungen versuchen. E/a-Vorgang wird hängen und SQL Server kann nicht der angegebenen Aktion beenden. Ähnlich wie das Protokoll Bedingung schreiben, die weiter oben beschrieben wurde, können viele schlechte System Verhaltensweisen auftreten, wenn solche Bedingung das System wedges.LösungUm dieses Problem zu beheben, wird einen Neustart von SQL Server häufig benötigt. Allerdings müssen manchmal Sie das Betriebssystem Verarbeitung wiederherstellen neu starten. Wir empfehlen außerdem, dass Sie vom Hersteller e/A ein Softwareupdate erhalten.Beispiel 4: Remote Storage, Mirroring und RAID-LaufwerkeViele Systeme verwenden Spiegelung oder ähnliche ergreifen, um Datenverlust zu verhindern. Einige der Systeme, die Spiegelung verwenden sind softwarebasiert und einige hardwarebasiert. Die Situation für diese Systeme erhöhte Latenz ist i. d. r. vom technischen Support von aufgedeckt.Ein Anstieg der e/A-Gesamtzeit tritt auf, wenn die e/A auf den Spiegel ausführen müssen, bevor der e/a-als abgeschlossen angesehen wird. Für remote Spiegelung Installationen können Netzwerk Wiederholungen beteiligt werden. Wenn Laufwerk Fehler auftreten, und das Raid-System neu erstellt, kann das e/A-Muster auch unterbrochen werden. LösungStrenge Konfigurationseinstellungen müssen Wartezeit Spiegelungen oder Raid-Neuerstellung Operationen zu verringern.Beispiel 5: KomprimierungMicrosoft unterstützt nicht Microsoft SQL Server 7.0 oder Microsoft SQL Server 2000-Datendateien und Protokolldateien auf komprimierten Laufwerken. NTFS-Komprimierung ist nicht für SQL Server sicher, da NTFS-Komprimierung Protokoll schreiben Ahead-Protokollierung (WAL) unterbrochen. NTFS-Komprimierung erfordert auch eine erhöhte Verarbeitung für jeden e/A-Vorgang. Komprimierung erstellt "jeweils" wie Verhalten, das bewirkt, schwerwiegende Leistungsprobleme dass auftreten.LösungDekomprimieren Sie die Daten und die Protokolldateien um dieses Problem zu beheben.Zusätzliche DatenpunkteDie Wait-Typinformationen, die in der Systemtabelle Sysprocesses bereitgestellt ist kann bei der Diagnose e/a-Engpässe hilfreich sein. Puffer e/a-Latch warten Typen und writelog beim wartet sind Schlüsselindikatoren Pfad Serverleistung untersuchen.Weitere Informationen zu warten Typen finden Sie im folgenden Artikel der Microsoft Knowledge Base: 822101
(http://support.microsoft.com/kb/822101/
)
Beschreibung der Spalten Waittype und Lastwaittype in der Tabelle "master.dbo.sysprocesses" in SQL Server 2000 und SQL Server 2005 Informationsquellen231619
(http://support.microsoft.com/kb/231619/
)
Wie Sie das Dienstprogramm SQLIOStress, um ein Datenträgersubsystem wie z. B. SQL Server zu belasten 826433
(http://support.microsoft.com/kb/826433/
)
Zusätzliche SQL Server-Diagnose hinzugefügt, um nicht berichtete e/A-Probleme aufzuspüren 230785
(http://support.microsoft.com/kb/230785/
)
SQL Server 7.0, SQL Server 2000 und SQL Server 2005-Protokollierung und Data Storage Algorithmen erweitern die Zuverlässigkeit der Daten SQL Server erfordert Systeme unterstützen ? garantierte Übermittlung mit stabilen Medium ? wie beschrieben unter das Programm Microsoft SQL Server Always-On Storage Solution überprüfen. FOWeitere Informationen zu den Eingabe- und Anforderungen für die SQL Server Datenbank-Engine finden Sie im folgenden Artikel der Microsoft Knowledge Base: 967576
(http://support.microsoft.com/kb/967576/
)
Microsoft SQL Server Engine E/A-Anforderungen Die Informationen in diesem Artikel beziehen sich auf:
Maschinell übersetzter ArtikelWichtig: 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: 897284
(http://support.microsoft.com/kb/897284/en-us/
)
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.
| Weitere Ressourcen Weitere SupportseitenCommunityHilfe erhaltenSPRACHE AUSWÄHLEN
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


Zum Anfang