Wer Cognos-Berichte entwickelt, kennt die Situation:
Ein Bericht benötigt plötzlich 30, 60 oder sogar mehrere Minuten für die Ausführung. Die eigentliche Herausforderung besteht dabei oft nicht darin, das Problem zu beheben, sondern zunächst herauszufinden, wo die Zeit überhaupt verloren geht.
Liegt das Problem in der Datenbank?
In einer einzelnen SQL-Abfrage?
Im Framework Manager Modell?
In komplexen Berechnungen?
Oder verursacht das Berichtslayout selbst die Verzögerung?
Mit Cognos Analytics 12 hat IBM den Interactive Performance Assistant (IPA) deutlich ausgebaut und ein Werkzeug geschaffen, das genau diese Fragen beantworten soll.
Was ist der Interactive Performance Assistant?
Der Interactive Performance Assistant ist ein Analysewerkzeug für Cognos Analytics, mit dem detaillierte Performance-Daten für Berichte und Dashboards aufgezeichnet und ausgewertet werden können.
Während klassische Performance-Analysen häufig auf Log-Dateien, Datenbank-Traces oder Vermutungen basieren, liefert IPA konkrete Messwerte für die tatsächliche Ausführung eines Berichts.
Dabei werden unter anderem folgende Informationen erfasst:
- Query-Laufzeiten
- Rendering-Zeiten
- Service-Aufrufe
- Dispatcher-Aktivitäten
- Objektbezogene Laufzeiten
- Zeitliche Abläufe einzelner Prozesse
Dadurch wird sichtbar, welche Komponenten tatsächlich für die Gesamtlaufzeit verantwortlich sind.
Installation und Einrichtung
Die Einrichtung von IPA erfolgt in wenigen Schritten.
1. IPA aktivieren
Unter
Verwalten ? Konfiguration ? System ? Erweiterte Einstellungen
wird folgende Einstellung angelegt:
DISP.zipi.IPAEnabled=true
Anschließend muss Cognos die erforderlichen IPA-Tabellen erzeugen können.
2. IPA-Datenbank bereitstellen
IPA speichert seine Messdaten in einer Datenbank.
Standardmäßig verwendet Cognos:
- die Notification Database
- alternativ den Content Store
Unterstützt werden unter anderem:
- Microsoft SQL Server
- Oracle
- IBM Db2
Nach der Aktivierung werden Tabellen mit dem Präfix:
IPA_
angelegt.
3. IBM-Deployment importieren
Mit Cognos wird bereits ein Deployment ausgeliefert:
IBM_Cognos_IPPA.zip
Dieses befindet sich im Deployment-Verzeichnis der Installation und muss importiert werden.
Nach erfolgreichem Import erscheint im Team Content ein neuer Ordner:
ZIPI
Dort befinden sich die Analyseberichte, die später für die Auswertung verwendet werden.
Performance-Daten erfassen
Nach der Einrichtung kann jeder Berichtsentwickler Performance-Daten erzeugen.
Dazu wird ein Bericht im Bearbeitungsmodus geöffnet.
Über:
Ausführen ? Ausführungsoptionen anzeigen
wird die Option
Leistungsdetails einschließen
aktiviert.
Der Bericht wird anschließend normal als HTML ausgeführt.
Auf den ersten Blick sieht das Ergebnis unverändert aus.
Tatsächlich wurden jedoch umfangreiche Performance-Daten aufgezeichnet.
Die ersten Erkenntnisse
Nach der Ausführung erscheinen zusätzliche Informationen direkt im Bericht.
Neben Listen, Crosstabs oder anderen datenbasierten Objekten werden Ausführungszeiten eingeblendet.
Zusätzlich erscheint am Ende des Berichts ein Link mit der gesamten Ausführungsdauer.
Von dort gelangt man direkt in die IPA-Auswertungen.
Der wichtigste Bericht: Process Time
Der Einstiegspunkt jeder Analyse ist der Bericht “Process Time”.
Hier werden sämtliche Prozesse dargestellt, die während der Ausführung beteiligt waren.
Typische Einträge sind:
- Query Service
- Report Service
- Content Manager
- Rendering-Komponenten
- Dispatcher-Prozesse
Dadurch lässt sich sehr schnell erkennen, welche Komponente den größten Anteil an der Gesamtlaufzeit besitzt.
Das eigentliche Highlight: Request Sequence Chart
Besonders interessant wird die Analyse im sogenannten Request Sequence Chart.
Dabei handelt es sich um eine zeitliche Darstellung aller Aktivitäten während der Berichtsausführung.
Ähnlich einem Gantt-Diagramm wird sichtbar:
- wann Prozesse gestartet wurden
- wann sie beendet wurden
- welche Prozesse parallel liefen
- welche Prozesse auf andere warten mussten
Gerade bei komplexen Berichten mit mehreren Abfragen oder Services liefert diese Ansicht oft die entscheidenden Hinweise.
Object Path Time – der Weg zum Verursacher
In vielen Fällen reicht die Analyse auf Service-Ebene nicht aus.
Dann hilft der Bericht “Object Path Time”.
Hier werden die tatsächlichen Berichtsobjekte aufgelistet.
Beispielsweise:
- Listen
- Crosstabs
- Diagramme
- Container
- Wiederholungsobjekte
Für jedes Objekt wird die benötigte Zeit angezeigt.
Damit lässt sich häufig exakt bestimmen, welcher Berichtsbestandteil für die Verzögerung verantwortlich ist.
Ein typisches Praxisbeispiel
Ein Bericht benötigt insgesamt 45 Sekunden.
Ohne IPA könnte man vermuten:
- Die Datenbank ist langsam.
- Das Modell enthält zu viele Joins.
- Die Hardware ist überlastet.
Die IPA-Analyse zeigt jedoch:
- Query-Ausführung: 4 Sekunden
- Datenübertragung: 1 Sekunde
- Rendering einer Crosstab: 32 Sekunden
- Restliche Verarbeitung: 8 Sekunden
Die Datenbank ist also gar nicht das Problem.
Der eigentliche Engpass befindet sich im Berichtslayout.
Ohne IPA wäre dieser Zusammenhang deutlich schwieriger zu erkennen.
Warum IPA aus meiner Sicht unterschätzt wird
Viele Cognos-Teams investieren erhebliche Zeit in Datenbankanalysen oder Log-Auswertungen, obwohl Cognos die relevanten Informationen bereits bereitstellt.
IPA ersetzt zwar keine tiefgehende Datenbankanalyse, beantwortet jedoch eine entscheidende Frage:
Wo geht die Zeit tatsächlich verloren?
Erst wenn diese Frage geklärt ist, lohnt sich die eigentliche Optimierung.
Fazit
Der Interactive Performance Assistant gehört aus meiner Sicht zu den interessantesten technischen Neuerungen in Cognos Analytics 12.
Die Einrichtung ist überschaubar, der Nutzen dagegen erheblich.
Wer regelmäßig langsame Berichte analysieren muss, erhält mit IPA ein Werkzeug, das den Weg vom Symptom zur eigentlichen Ursache deutlich verkürzt.
Statt Performance-Probleme zu vermuten, können sie gemessen werden.
Und genau das ist meist der erste Schritt zu einer erfolgreichen Optimierung.