Datenbank Performance

Datenbank Performance

Ausgangslage des Problems
Die Performance einer Datenbank bzw. die Reaktionsfähigkeit einer SQL-Datenbank ist für Kunden sehr relevant. Marktstudien zeigen immer wieder, dass wenn eine Applikation lange ladet und somit Geschäftsprozesse verlangsamt werden es zu gröberen Beschwerden kommt. Wenn man diese Probleme nicht Beheben kann orientieren sich die Kunden anderweitig und dies währe fatal für ein IT-Unternehmen.

Das heisst es ist alles daran zu setzen sauber strukturierte Applikationen zu schreiben mit einer leistungsstarken SQL-Datenbank. Eine SQL-Server kann auf Softwareebene merkbar getunt werden, erfahrene Entwickler haben festgestellt das in 8 von 10 fällen langsame Abfragen die Schuld langer Ladezeiten in einer Applikation liegt.

Die verschiedenen Probleme
Bei einer Bereits in betrieb genommenen Applikation bei denen Kunden über zu langsame Ladezeiten reklamieren muss man das sogenannte Query-Tuning durchführen. Bei dieser Methode untersucht man mit grafischen Tools die Request-Zeiten der einzelnen Abfragen und bekommt eine Statistik in der genau ersichtlich ist welche abfragen für die langsame Reaktion verantwortlich ist. Vor allem JOINS und SELECT * sind meisten die Problemfälle.

Retrace ist eine Software die Leistungsstatistiken von verschiedenen Abfragen auflisten kann.

Datenbanken ohne Indexe

Es macht fast immer Sinn Indexe für eine Datenbank zu erstellen, doch was sind Indexe?

In der Theorie heisst es: Indexe machen die Datenbank schneller, dies trifft es auf den punkt ist jedoch eine schlechte Erklärung. Indexe sind im grundgenommen einfach redundante Daten, die aus einer SQL-Tabelle abstammen (kopierte Daten). In einem Index sind die Daten jedoch in einer sortierten Liste und dies ist für eine SQL-Abfrage sehr viel «Angenehmer» die Daten zusammen zu führen. Indexe zu erstellen ist also immer sinnvoll!

Hardwareprobleme (Resource-Monitoring)
Hardware Probleme sind eigentlich eher weniger das Problem ausser sie sind ein SQL-Genie der die Datenbank schon auf Softwareebene für die beste Leistung optimiert hat. Dann könnte es auch sein das der Server z.B. zu wenig RAM hat dies kann einfach über einen Task-Manager ermittelt werden.