Auch ich als Entwickler bekomme Ticket in denen die Performance bemäbgelt wird. Aber wo es genau hängt kann man nur mit Profilern herausbekommen. Es gibt einige. Sogar von Microsoft, denn im Visual Studio ist bereits einer integriert. Aber leider habe ich den bis heute nicht verstanden. Ganz im Gegensatz zu dem RedGate Profiler.

Unter http://www.red-gate.com kann man sich jederzeit eine zeitlich begrenzte Version von ANTS herunterladen und es gibt viele Video’s, in denen man sehen kann, wie man das Problem findet. Ich habe schon einige Programme schneller gemacht, in den meisten fällen waren es Programm, die nicht von mir waren.

redgate

Kleine Probleme waren Listen, die zu lang geworden sind und dann im nachhinein in der Applikation zu oft aufgerufen wurden. Lösung hier: Dictionary und dann einfach per KeyValuesPair oder direkt per Key drauf zugreifen.

Doch das meiste Problem, welches richtig Performance gebracht hatte, waren SQL Queries. Einfach mal per RDP auf dem SQL Server anmelden und dann sich die längsten Queries anzeigen lassen. Diese kann man dann per Analyser optimieren. Falls das dann nicht mehr geht, sollte man sich die Tabelle genauer anschauen. Man kann jeder Tabelle ändern! Man braucht nur eine kleine Idee. Eine kleine Migration, einen I-Test und dann noch eine Zeit nach der Produktiv gehung warten. Danach nochmal Queries im SQL Profiler nachschauen und dann sollte die ganze Sache auch Performant sein.

Es gab aller dings noch ein drittes Problem, welches in einer Applikation, die Zeit von knapp 30 Sekunden (bei jedem Klick), auf unter 1 Sekunde gebracht hatte. Da die Datenbank rieseig war, war hier die Lösung: Paging. Mit anderen Worten: hole nur so viele Daten von der Datenbank, wie du auch wirklich benötigst. 😉

Vor der Weihnachtszeit mach ich immer mit den Entwicklern eine Schulung. Wir finden LIVE innerhalb einer Stunde, schlechte Queries und optimieren diese direkt auf der Produktiven Datenbank. In diesem Jahr waren sogar Personen aus dem SAP Team und aus der Systemintegration dabei. Ich denke, jeder nimmt aus solchen Schulungen immer etwas mit und versteht, wie ein Programm funktioniert und was man sogar als nicht Programmierer direkt beheben kann.