Gibt eine Zusammenfassung der Anforderungszeitinformationen für alle Verbindungen zurück, wenn der Datenbankserver die Protokollierung der Anforderungszeiten aktiviert hat.
sa_performance_diagnostics( )
Spaltenname | Datentyp | Beschreibung |
---|---|---|
Number | INTEGER |
Gibt die Verbindungs-ID (eine Nummer) für die aktuelle Verbindung zurück. |
Name | VARCHAR(255) |
Gibt den Namen der aktuellen Verbindung zurück. Sie können einen Verbindungsnamen mit dem ConnectionName (CON)-Verbindungsparameter angeben. Siehe Verbindungsparameter ConnectionName (CON). Die folgenden Namen werden für temporäre Verbindungen verwendet, die vom Datenbankserver erstellt werden:
Siehe Temporäre Verbindungen. |
Userid | VARCHAR(255) |
Gibt die Benutzer-ID für die Verbindung zurück. |
DBNumber | INTEGER |
Gibt die ID-Nummer der Datenbank zurück. |
LoginTime | TIMESTAMP |
Gibt das Datum und die Uhrzeit zurück, zu der die Verbindung hergestellt wurde. |
TransactionStartTime | TIMESTAMP |
Gibt eine Zeichenfolge mit der Uhrzeit zurück, zu der die Datenbank erstmals nach einem COMMIT oder ROLLBACK geändert wurde, oder eine leere Zeichenfolge, wenn seit dem letzten COMMIT oder ROLLBACK keine Änderungen in der Datenbank durchgeführt wurden. |
LastReqTime | TIMESTAMP |
Gibt den Zeitpunkt zurück, an dem die letzte Anforderung für die angegebene Verbindung gestartet wurde. Diese Eigenschaft kann eine leere Zeichenfolge für interne Verbindungen wie zum Beispiel Ereignisse zurückgeben. |
ReqType | VARCHAR(255) |
Gibt den Typ der letzten Anforderung zurück. Wenn eine Verbindung vom Verbindungspooling im Cache abgelegt wurde, lautet ihr ReqType-Wert CONNECT_POOL_CACHE. |
ReqStatus | VARCHAR(255) |
Gibt den Status der Anforderung zurück. Dies kann einer der folgenden Werte sein:
Die mit einem Stern (*) markierten Werte werden nur zurückgegeben, wenn die Protokollierung der Anforderungszeitinformationen beim Datenbankserver unter Verwendung der Serveroption -zt aktiviert ist. Wenn keine Anforderungszeitinformationen protokolliert werden (Standardeinstellung), werden die Werte als "Executing" gemeldet. Siehe Datenbankserveroption -zt . |
ReqTimeUnscheduled | DOUBLE |
Gibt die Menge der Wartezeit ohne Zeitplanung zurück, oder NULL, wenn die Option -zt nicht angegeben wurde. Siehe Datenbankserveroption -zt . |
ReqTimeActive | DOUBLE |
Gibt die bei der Verarbeitung von Anforderungen verstrichene Zeit in Sekunden zurück oder NULL, wenn die Option -zt nicht angegeben wurde. Siehe Datenbankserveroption -zt . |
ReqTimeBlockIO | DOUBLE |
Gibt die beim Warten auf den Abschluss von I/O-Vorgängen verstrichene Zeit in Sekunden zurück oder NULL, wenn die Option -zt nicht angegeben wurde. Siehe Datenbankserveroption -zt . |
ReqTimeBlockLock | DOUBLE |
Gibt die beim Warten auf eine Sperre verstrichene Zeit in Sekunden zurück oder NULL, wenn die Option -zt nicht angegeben wurde. Siehe Datenbankserveroption -zt . |
ReqTimeBlockContention | DOUBLE |
Gibt die beim Warten auf einen atomaren Zugriff verstrichene Zeit in Sekunden zurück oder NULL, wenn die RequestTiming-Servereigenschaft auf "Off" gesetzt ist. Siehe Datenbankserveroption -zt . |
ReqCountUnscheduled | INTEGER |
Gibt die Häufigkeit zurück, mit der die Verbindung auf einen Zeitplan gewartet hat, oder NULL, wenn die Option -zt nicht angegeben wurde. Siehe Datenbankserveroption -zt . |
ReqCountActive | INTEGER |
Gibt die Anzahl der verarbeiteten Anforderungen zurück, oder NULL, wenn die Servereigenschaft RequestTiming auf "Off" gesetzt ist. Siehe Datenbankserveroption -zt . |
ReqCountBlockIO | INTEGER |
Gibt die Häufigkeit zurück, mit der die Verbindung auf den Abschluss von I/O-Vorgängen gewartet hat, oder NULL, wenn die Option -zt nicht angegeben wurde. Siehe Datenbankserveroption -zt . |
ReqCountBlockLock | INTEGER |
Gibt die Häufigkeit zurück, mit der die Verbindung auf eine Sperre gewartet hat, oder NULL, wenn die Option -zt nicht angegeben wurde. Siehe Datenbankserveroption -zt . |
ReqCountBlockContention | INTEGER |
Gibt die Häufigkeit zurück, mit der die Verbindung auf einen unteilbaren Zugriff gewartet hat, oder NULL, wenn die Option -zt nicht angegeben wurde. Siehe Datenbankserveroption -zt . |
LastIdle | INTEGER |
Gibt die Anzahl der Computertakte zwischen Anforderungen zurück. |
BlockedOn | INTEGER |
Gibt Null zurück, wenn die aktuelle Verbindung nicht blockiert ist, bzw. im Fall einer Blockierung die Verbindungsnummer, auf der die Verbindung aufgrund eines Sperrenkonflikts blockiert ist. |
UncommitOp | INTEGER |
Gibt die Anzahl der nicht festgeschriebenen Vorgänge zurück. |
CurrentProcedure | VARCHAR(255) |
Gibt den Namen der Prozedur zurück, die eine Verbindung derzeit ausführt. Wenn die Verbindung verschachtelte Prozeduraufrufe ausführt, ist der Name derjenige der aktuellen Prozedur. Wenn keine Prozedur ausgeführt wird, wird eine leere Zeichenfolge zurückgegeben. |
EventName | VARCHAR(255) |
Gibt den Namen des zugeordneten Ereignisses zurück, wenn die Verbindung einen Event-Handler ausführt. Sonst wird eine leere Zeichenfolge zurückgegeben. |
CurrentLineNumber | INTEGER |
Gibt die aktuelle Zeilennummer der Prozedur oder Kombinationsanweisung zurück, die eine Verbindung ausführt. Die Prozedur kann unter Verwendung der Eigenschaft CurrentProcedure identifiziert werden. Wenn die Zeile ein Bestandteil einer Kombinationsanweisung vom Client ist, wird eine leere Zeichenfolge zurückgegeben. |
LastStatement | LONG VARCHAR |
Gibt die zuletzt vorbereitete SQL-Anweisung für die aktuelle Verbindung zurück. Der LastStatement-Wert wird gesetzt, wenn eine Anweisung vorbereitet wird, und gelöscht, wenn eine Anweisung gelöscht wird. Bei jeder Verbindung ist jeweils nur eine Anweisungszeichenfolge verfügbar. Wenn sa_conn_activity einen nicht-leeren Wert für eine Verbindung meldet, ist dies höchstwahrscheinlich die Anweisung, die die Verbindung derzeit ausführt. Wenn die Anweisung abgeschlossen wäre, wäre sie wahrscheinlich gelöscht und der Eigenschaftswert bereinigt worden. Wenn eine Anwendung mehrere Anweisungen vorbereitet und ihre Anweisungs-Handles beibehält, spiegelt der LastStatement-Wert nicht wieder, was eine Verbindung derzeit ausführt. Wenn das clientseitige Caching von Anweisungen aktiviert ist und eine zwischengespeicherte Anweisung wieder verwendet wird, gibt diese Eigenschaft eine leere Zeichenfolge zurück. |
LastPlanText | LONG VARCHAR |
Gibt den ausführlichen Textplan der letzten auf der Verbindung ausgeführten Abfrage zurück. Sie steuern die Verfügbarkeit des letzten Plans, indem Sie die Option RememberLastPlan der sa_server_option-Systemprozedur setzen oder die Serveroption -zp verwenden. Siehe Datenbankserveroption -zp . |
AppInfo | LONG VARCHAR |
Gibt Informationen über den Client zurück, der die Verbindung hergestellt hat. Bei HTTP-Verbindungen umfasst dies auch Angaben zum Browser. Bei Verbindungen, die ältere Versionen von jConnect oder Sybase Open Client verwenden, können die Informationen unvollständig sein. Der API-Wert kann DBLIB, ODBC, OLEDB, ADO.NET, iAnywhereJDBC, PHP, PerlDBD oder DBEXPRESS sein. Weitere Informationen zu Werten, die bei anderen Verbindungstypen zurückgegeben werden, finden Sie unter Verbindungsparameter AppInfo (APP). |
LockCount | INTEGER |
Gibt die Anzahl der von der Verbindung gehaltenen Sperren zurück. |
SnapshotCount | INTEGER |
Gibt die Anzahl der der Verbindung zugeordneten Snapshots zurück. |
Die sa_performance_diagnostics-Systemprozedur gibt eine Ergebnismenge zurück, die aus einer Reihe von Anforderungszeiteigenschaften und Statistiken besteht, wenn der Server aufgefordert wurde, die Informationen zu sammeln. Das Aufzeichnen von Anforderungszeitinformationen muss auf dem Datenbankserver aktiviert sein, bevor sa_performance_diagnostics aufgerufen wird. Um dies zu erreichen, legen Sie die Option -zt fest, wenn Sie den Datenbankserver starten, oder führen Sie folgenden Prozeduraufruf aus:
CALL sa_server_option( 'RequestTiming','ON' ); |
Sie müssen das MONITOR-Systemprivileg haben.
Keine
Sie können die folgende Abfrage ausführen, um Verbindungen zu identifizieren, die lange auf den Abschluss von Datenbankserver-Anforderungen gewartet haben.
SELECT Number, Name, CAST( DATEDIFF( second, LoginTime, CURRENT TIMESTAMP ) AS DOUBLE ) AS T, IF T <> 0 THEN (ReqTimeActive / T) ELSE NULL ENDIF AS PercentActive FROM sa_performance_diagnostics() WHERE T > 0 AND PercentActive > 10.0 ORDER BY PercentActive DESC; |
So finden Sie alle derzeit ausführenden Anforderungen, die seit mehr als 60 Sekunden ausgeführt wurden:
SELECT Number, Name, CAST( DATEDIFF( second, LastReqTime, CURRENT TIMESTAMP ) AS DOUBLE ) AS ReqTime FROM sa_performance_diagnostics() WHERE ReqStatus <> 'IDLE' AND ReqTime > 60.0 ORDER BY ReqTime DESC; |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2013, SAP AG oder ein SAP-Konzernunternehmen. - SAP Sybase SQL Anywhere 16.0 |