Leistungsprobleme entstehen in vielen verschiedenen Situationen. Eine Blockierung ist eine Art von Leistungsproblem, bei der Benutzer unendlich lang auf eine Antwort warten. Die Fehlerbehebungsverfahren für Blockierungen sind den für andere Leistungsprobleme verwendeten Verfahren ähnlich.
Hier einige Beispiele für Situationen, in denen sich Leistungsprobleme zeigen:
Jede dieser Situationen unterscheidet sich geringfügig von den anderen. Ein wichtiger Bestandteil der Fehlerbehebung ist die Klärung der Frage, ob etwas die Erwartungen nicht erfüllt oder ob die Ressourcenkapazität überschritten wird.
Das Beheben von Blockierungen kann besonders schwierig sein, weil die Symptome oft mit den Symptomen anderer Probleme übereinzustimmen scheinen. Wenn beispielsweise ein Benutzer lange Zeit auf die Antwort auf eine Abfrage wartet, könnte dieser Benutzer glauben, dass das System blockiert ist. Wenn die Abfrage sehr komplex ist und außerdem das System gleichzeitig stark ausgelastet ist, könnte das System nicht wirklich blockiert sein, sondern nur sehr langsam antworten. Auch kann bei einem Systemabschluss, der aufgrund eines schwerwiegenden Fehlers erfolgt, ein erheblicher Aktivitätsstau dazu führen, dass die meisten oder alle Befehle scheinbar blockiert sind.
Sie müssen den Fehler nicht nur richtig beschreiben und angeben, welche Symptome auftreten (Langsamkeit, zu viele verwendete Ressourcen usw.) und wo die Symptome auftreten (in einer Abfrage, Anwendung, Systemressource usw.), sondern Sie benötigen auch verschiedene andere Einzelinformationen, um den Fehler in einen Kontext zu stellen.
Falls das Problem schon länger auftritt und ein Datenbanküberwachungszeitplan implementiert ist, können Sie Unterschiede mithilfe von Protokolldaten suchen. So können Sie sich auf Änderungen im Systemverhalten und dann auf die dafür verantwortlichen Gründe konzentrieren. Nutzen Sie proaktive Überwachungstools. Sie müssen auch alle kürzlich vorgenommenen Änderungen berücksichtigen, z. B. Hardware- oder Software-Upgrades, eine neue Anwendungsimplementierung, zusätzliche Benutzer usw.
Falls die schlechte Leistung ununterbrochen auftritt, überprüfen Sie, ob vom System ein größerer Verarbeitungsprozess gestartet wurde oder ob eine gemeinsam genutzte Datenbankressource zu einem Engpass geworden ist. Weitere potenzielle Ursachen für Leistungseinbußen sind gestiegene Benutzeraktivität, mehrere große Anwendungen oder der Wegfall von Hardwareeinheiten. Ist die Leistung jeweils nur kurze Zeit schlecht, suchen Sie nach Anwendungen oder Dienstprogrammen, die stets zu diesen Zeiten ausgeführt werden. Falls die Benutzer melden, dass bei einer Anwendungsgruppe Leistungsprobleme auftreten, können Sie sich in Ihrer Analyse zunächst auf diese Anwendungen konzentrieren.
Systemweite Leistungsprobleme deuten auf ein Problem außerhalb des Produkts hin. Möglicherweise ist ein Eingriff auf Betriebssystemebene erforderlich.
Falls eine Anwendung das Problem zu verursachen scheint, können Sie untersuchen, ob die Benutzer melden, dass bei einer Abfrage oder einer Reihe von Abfragen eine Verlangsamung auftritt. Möglicherweise können Sie das Problem auf eine Anwendung und eine bestimmte Gruppe von Abfragen eingrenzen.
Sie sollten feststellen, ob gemeinsame Objekte (z. B. Datenbanktabellen, Tabellenbereiche, Indizes usw.) betroffen sind. Ist dies der Fall, ist davon auszugehen, dass diese Objekte einen Konflikt verursachen. Andere zu berücksichtigende Bereiche könnten referenzielle Integritätsbedingungen, Fremdschlüsselkaskaden, Sperrenprobleme usw. sein.