Ein kritischer Faktor für eine gute Performance in ServiceNow stellt die Optimierung von Abfragen (SELECT-Statement) gegen die Datenbank dar. Es ist sehr wichtig, dass Datenbankabfragen sehr schnell, d.h. im Bereich von wenigen Millisekunden bearbeitet werden, da selbst einfache Operationen wie die Darstellung eines Incidents oder die Auflistung aller aktiven Change Requests schnell hunderte Datenbankabfragen generieren.
Langsame Datenbankabfragen listet ServiceNow in dem Modul Slow Query Log auf und es sollte eine regelmäßige, monatliche Aufgabe der ServiceNow Administratoren sein, dass Slow Query Log auf Auffälligkeiten zu sichten und entsprechende Maßnahmen wie der Erstellung geeigneter Datenbank-Indizes zu ergreifen.
Das Slow Query Log listet langsame Datenbankabfragen mit entsprechenden Beispiel-Statement (Spalte: Example), Durchschnittliche Ausführungsdauer in Millisekunden (Spalte: Average execution time (ms)), die Anzahl (Spalte: Execution Count) seit erstmaliges Auftreten (Spalte: First sighting), bzw. auch das letztmalige Auftreten (Spalte: Last sighting) auf. Am Interessantesten sind nun entsprechend jene Abfragen, die besonders häufig mit einer besonders langen Bearbeitungsdauer auftreten, also Average execution time (ms) * Execution Count. ServiceNow hat hierfür bereits das Feld Total Execution Time vorgesehen. (siehe hierzu auch die Informationen in der ServiceNow Dokumentation)
Auf dem einzelnen Datensätzen stellt ServiceNow außerdem noch sehr praktische Reports zur Verfügung, so dass das Auftreten der Datenbankabfrage innerhalb der letzten 30 Tage besser untersucht werden kann.
Schauen Sie einfach mal in das Slow Query Log Ihrer ServiceNow-Instanzen – sofern Sie Unterstützung brauchen, können Sie sich gern an mich wenden!