Jörg Flatten IT-Consulting
Troubleshooting / Perfomanceuntersuchung /
Debugging
-
Problemanalyse
-
Fehlersuche
-
Lockingstrategien
-
Parallelisierung / Sequentialisierung
-
PL/SQL und T-SQL Debugging
Häufig sind gerade bei langjährig erfolgreichen Datenbankumgebungen im Laufe der Entwicklung entweder durch Datenmengen, Versionsaktualisierungen oder auch Erweiterungen schleichend Probleme aufgetreten, die den erfolgreichen Weiterbetrieb in Frage stellen.
Die Datenbankmanagement Werkzeuge liefern normalerweise allgemeine Hinweise, in welchem Bereich der Datenbankanwendungen ggf. Optimierungen helfen können, meist werden Indexe oder Serverkonfigurationen vorgeschlagen bzw. Deadlocksituationen aufgezeigt. Allerdings berücksichtigen diese Vorschläge selten die individuelle Implementierung und sind ggf. nicht kurzfristig erfolgreich.
Der Einsatz von Debugging und die Suche nach Quickwins gehört hier zu den typischen Aufgabenstellungen, bei denen sehr häufig erfolgreich unterstützt wurde.
Problemanalyse
Plötzlich wird die Anwendung immer langsamer … die Ergebnisse stimmen plötzlich nicht mehr … Ich kann die Funktion nicht mehr ausführen … Das ist früher nicht passiert …
Die Auswirkung ist eigentlich meist recht schnell beschrieben, aber wo liegt der Grund. Ist der Datendurchsatz gestiegen, fand ein Versions-Update statt und einige Funktionen wurden damals nicht getestet, wir haben „eigentlich“ nichts geändert, aber …
Mit der Beschreibung der Fehler-Situation lassen sich teilweise mögliche Ursachen schon vermuten, die durch weitere Tests verifiziert werden müssen. Durch die jahrelange Arbeit in und mit Datenbanken und dem Hintergrund, wie eine Datenbank eigentlich arbeitet, lassen sich mögliche Ursachen meist einkreisen und mögliche Lösungswege eruieren.
Fehlersuche
Der Schreibtischtest ist jedem ein Begriff, aber die Durchführung ist vielen heutigentags ein Graus. Dabei ist bei Zugang zum Algorithmus und einem Beispiel die Nachverfolgung der schnellste Weg, den Fehler einzugrenzen, zu identifizieren und der Behebung zuzuführen. Die größte Herausforderung ist hierbei oft, ein reproduzierbares Fehlerbild zu schaffen. Hier helfen die Vermutungen aus der Problemanalyse weiter sowie eine lange Erfahrung, um aus bekannten Fehlerbildern auf das aktuelle Fehlerbild schließen zu können.
Lockingstrategien
Wo ist der Unterschied zwischen clustered index und non clustered index, warum wird meine Transaktion gesperrt, obwohl ein ganz anderer Datensatz als von der Nachbartransaktion bearbeitet wird, wie kann ich verhindern, dass unnötige Sperren auftreten.
Häufig wird bei der Implementierung vorausgesetzt, die Datenbank macht das schon richtig. Aber im parallelen Betrieb führt dies ohne eine Berücksichtigung einer passenden Lockingstrategie zu Behinderungen. Und Locks an sich sind wichtig, gerade um die geforderten ACID Eigenschaften (AtomicityConsistencyIsolationDurability) sicherzustellen.
Parallelisierung / Sequentialisierung
Welche Schritte meiner Applikation sind eigentlich unabhängig voneinander (parallel) abarbeitbar und wann muss ich eine Reihenfolge einhalten. Ist die parallel query für die aktuelle Bearbeitung sinnvoll oder eher hinderlich.
Gerade mit unnötiger Parallelisierung wird teilweise ein überflüssiger Overhead von den Datenbanken geschaffen, die zu hohen Laufzeiten und zu hoher Prozessorlast führen. Hier ist im Bedarfsfall die Erwartung mit dem Verhalten der DB abzugleichen und ggf. die Datenbank auf einen alternativen Ausführungsplan hinzuweisen.
PL/SQL und T-SQL Debugging
Durch Einstellungen können nach Einbettung des Debugs in die aktuelle PL/SQL oder T-SQL Applikation einzelne Bereiche ein- oder ausgeschaltet werden oder auch die Intensität durch Unterscheidung zwischen Alarm, Error, Warning und Info gesteuert werden. Hierfür ist der Zugang zum Source der DB Applikation erforderlich.
Damit ist aber auch sicherstellbar, dass die Datenbankapplikation die Zweige mit den Daten durchläuft, die mit den Eingangsdaten angesteuert werden sollten.
Datenbank-Consulting
Schnittstellen
Datenmigration
Troubleshooting
Perfomanceuntersuchung
Debugging
Digitalisierung
Produktion
Produktions-Tracing
Coaching
Projektkoordination