Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Performance der Datenbank überwachen und steigern » Datenbankperformance steigern » Sonstige Diagnose-Tools und Techniken

 

Anforderungsprotokollierung

Die Anforderungsprotokollierung zeichnet die einzelnen von einer Anwendung empfangenen Anforderungen bzw. die an eine Anwendung gesendeten Antworten auf. Das ist besonders hilfreich, um herauszufinden, welche Aktion die Anwendung vom Datenbankserver verlangt.

Die Anforderungsprotokollierung ist auch ein guter Ausgangspunkt für die Performanceanalyse einer bestimmten Anwendung, wenn es nicht offensichtlich ist, ob der Datenbankserver oder der Client der Verursacher des Fehlers ist. Sie können eine Anforderungsprotokollierung durchführen, um die spezielle Anforderung an den Datenbankserver zu ermitteln, die für Probleme verantwortlich sein könnte.

Hinweis

Die gesamte Funktionalität sowie die Daten, die von der Anforderungsprotokollierungsfunktion geliefert werden, stehen auch bei der Diagnoseprotokollierung zur Verfügung. Die Diagnoseprotokollierung bietet außerdem zusätzliche Funktionen und Daten. Weitere Hinweise finden Sie unter Erweiterte Anwendungsprofilerstellung mithilfe der Diagnoseprotokollierung.

Zu den protokollierten Daten gehören beispielsweise Zeitstempel, Verbindungs-IDs und Anforderungstyp. Bei Abfragen umfassen die Daten außerdem die Isolationsstufe, die Anzahl der abgerufenen Zeilen und den Cursortyp. Für die Anweisungen INSERT, UPDATE und DELETE werden auch die Anzahl der betroffenen Zeilen und die Anzahl der ausgelösten Trigger erfasst.

Achtung

Das Anforderungslog kann vertrauliche Daten enthalten, da es den vollständigen Text von SQL-Anweisungen einschließlich Kennwörtern enthält, wie etwa bei den Anweisungen GRANT CONNECT, CREATE DATABASE und CREATE EXTERNAL LOGIN. Wenn dies Sicherheitsprobleme verursacht, sollten Sie den Zugriff auf die Anforderungslogdatei einschränken.

Mit der Serveroption -zr können Sie die Anforderungsprotokollierung einschalten, wenn Sie den Datenbankserver starten. Sie können die Ausgabe in eine Anforderungslogsatei zur späteren Analyse speichern, indem Sie die -zo-Serveroption verwenden. Mit den Optionen -zn und -zs legen Sie fest, wie viele Anforderungslogdateien gespeichert werden und welche maximale Größe die Anforderungslogdateien haben können.

Weitere Hinweise zu diesen Optionen finden Sie unter:

Hinweis

Diese Serveroptionen wirken sich nicht auf die Diagnoseprotokollierung in Sybase Central aus. Die Anforderungsprotokollierung auf Dateibasis ist vollkommen getrennt von der Diagnoseprotokollierungsfunktion in Sybase Central, welche dbo-eigene Diagnosetabellen in der Datenbank verwendet, um Daten des Anforderungslogs zu speichern.

Die Systemprozedur "sa_get_request_times" liest ein Anforderungslog und befüllt die globale temporäre Tabelle (satmp_request_time) mit Anweisungen aus dem Protokoll und ihren Ausführungszeiten. Die aufgezeichneten Zeitangaben für die Anweisungen INSERT/UPDATE/DELETE beziehen sich auf die Zeit, zu denen die Anweisungen ausgeführt wurden. Bei Abfragen bestehen die aufgezeichneten Zeitdaten aus der Zeitspanne von PREPARE bis DROP (describe/open/fetch/close). Das bedeutet, dass Sie auf geöffnete Cursor achten müssen.

Prüfen Sie "satmp_request_time" für Anweisungen, die Kandidaten für Verbesserungen sein könnten. Anweisungen, die kostengünstig sind, aber häufig ausgeführt werden, können ein Performance-Problem darstellen.

Sie können "sa_get_request_profile" verwenden, um "sa_get_request_times" aufzurufen und "satmp_request_time" in einer anderen globalen temporären Tabelle namens "satmp_request_profile" zusammenzufassen. Diese Prozedur gruppiert überdies die Anweisungen und liefert die Anzahl der Aufrufe, die Ausführungszeiten usw. Weitere Hinweise finden Sie unter sa_get_request_times-Systemprozedur und sa_get_request_profile-Systemprozedur.

Anforderungslogs filtern

Sie können die Ausgabe in ein Anforderungslog filtern, um nur Anforderungen von einer bestimmten Verbindung oder einer bestimmten Datenbank aufzuzeichnen, indem Sie die Systemprozedur "sa_server_option" verwenden. Dies kann den Umfang des Protokolls verringern, wenn Sie einen Datenbankserver mit vielen aktiven Verbindungen oder einer Vielzahl von Datenbanken überwachen. Weitere Hinweise finden Sie unter sa_server_option-Systemprozedur.

♦  So filtern Sie anhand einer Verbindung
♦  So filtern Sie anhand einer Datenbank
♦  So setzen Sie das Filtern zurück
Hostvariable in Anforderungslogs ausgeben

Hostvariablenwerte können in ein Anforderungsprotokoll ausgegeben werden.

♦  So nehmen Sie Hostvariablenwerte auf

Die Prozedur "sa_get_request_times" für die Anforderungsprotokollanalyse erkennt Hostvariablen im Protokoll und fügt sie der globalen temporären Tabelle "satmp_request_hostvar" hinzu.