Performance-Tuning


Optimierungspotenzial (Quelle: forrester.com)

Das Performance-Tuning ist in vier Hauptbereiche aufgeteilt:

Das SQL-Tuning beschäftigt sich mit der neuen Strukturierung von SQL-Abfragen und bietet das meisten Potenzial zur Verbesserung der Performance. Bis zu 90% der Optimierungsmöglichkeit liegt in den SQL-Anweisung.

Das SQL-Tuning soll aber erst nach dem Netzwerk-, System- und Datenbank-Tuning vorgenommen werden, sonst müssen Änderungen in den SQL-Anweisung oder abgestimmte Ausführungspläne rückgängig bzw. neu gemacht werden.

Das Ziel des Oracle-SQL-Tunings? ist wie bei anderen Datenbanksystemen auch die Verbesserung des Ausführungsplans, damit die Ergebnismenge der SQL-Abfrage in der kürzesten Zeit und mit der kleinsten Anzahl von logischen und physischen I/O-Zugriffen zurückgeliefert wird. Wenn die verbrauchten Ressourcen für die Ausführung einer SQL-Abfrage reduziert werden, können mit denselben Ressourcen der CPU, des Speichers und der Festplatten-I/O mehr Benutzer bedient und mehr Anweisungen ausgeführt werden. Damit kann nicht nur bei dem Hardware gespart werden, sondern auch Energiekosten gesenkt werden.

Das SQL-Tuning ist ein sehr komplexes und umfangreiches Thema. Es ist nicht immer möglich, Performance-Probleme vorauszusehen, weil sich die Datenbank ständig verändert. Aus diesem Grund ist eine ständig Überwachung des gesamten Datenbanksystems durch Datenbank-Werkzeuge notwendig.

Es kann z.B. vorkommen, dass eine nicht getunte SQL-Anweisung erst mal ohne Problem und sehr schnell ausführt wird. Aber nach einer kurzen Zeit vergrößert sich der Tabelleninhalt, so dass die Ergebnismenge der SQL-Anweisung sehr langsam zurückgeliefert wird. Die Arbeit der Benutzer würde bei solchen Fällen stark beeinträchtigen und die Produktivität des Unternehmens würde Schaden erleiden, bis eine Lösung für die schlechte Performance der SQL-Anweisung gefunden wird.

Solche Probleme können aber auch bei getunten SQL-Anweisungen auftreten, z.B. bei dem Join von zwei Tabellen?. Eine Regel des SQL-Tunings? besagt, dass in der FROM-Klausel die größte Tabelle nach links und die kleinste nach rechts positioniert werden sollen. Wenn die Tabelle A größer als Tabelle B ist, soll Tabelle A links in der FROM-Klausel eingeordnet werden. Wegen der ständigen Änderung in der Datenbank kann es aber passieren, dass die Tabelle B größer als Tabelle A wird. Dadurch ist die Ausführung der SQL-Anweisung nicht mehr optimal.

Diese beiden Beispiele zeigen, wie wichtig ist, dass die Mitarbeiter viel Erfahrung in Bereich SQL-Tuning verfügen und Kenntnisse über die Datenverteilung in der Datenbank haben.

Nicht nur wegen der Kostenersparnisse soll man in das SQL-Tuning investieren. Es gibt auch anderen sehr wichtige Gründe. Ein Hauptgrund ist die Benutzerzufriedenheit und die daraus folgende Akzeptanz der Anwendung. Auch für die Mobile Computing ist das SQL-Tuning sehr wichtig, weil die mobilen Geräte keine Hochleistungshardware besitzen.

Siehe auch: SQL-Tuning?, Optimizer, Ausführungsplan einer SQL-Abfrage, Ausführungsplanoperationen?, Statistiken, Hints, Werkzeuge zum SQL-Tuning

edb enthält seit kurzem ein Tool zum Einüben des SQL-Tunings, in dem man das SQL-Tunig auch praktisch durchführen kann, den SQLOptimizer.

Quellen:

Kategorie: Tuning, P, T