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-Referenzhandbuch » Systemobjekte » Systemprozeduren » Alphabetische Liste der Systemprozeduren

 

sa_performance_diagnostics-Systemprozedur

Gibt eine Zusammenfassung der Anforderungszeitinformationen für alle Verbindungen zurück, wenn der Datenbankserver die Protokollierung der Anforderungszeiten aktiviert hat.

Syntax

sa_performance_diagnostics( )

Ergebnismenge
Spaltenname Datentyp Beschreibung
Number INT Die ID-Nummer der Verbindung
Name VARCHAR(255) Der Name der Verbindung
Userid VARCHAR(255) Die Benutzer-ID für die Verbindung
DBNumber INT Die ID-Nummer der Datenbank
LoginTime TIMESTAMP Datum und Uhrzeit der Verbindungsherstellung
TransactionStartTime TIMESTAMP Die Uhrzeit, zu der die Datenbank nach COMMIT oder ROLLBACK zum ersten Mal geändert wurde, bzw. eine leere Zeichenfolge, falls seitdem keine Änderungen vorgenommen wurden
LastReqTime TIMESTAMP Der Zeitpunkt, an dem die letzte Anforderung für die angegebene Verbindung gestartet ist
ReqType VARCHAR(255) Der Typ der letzten Anforderung
ReqStatus VARCHAR(255)

Der Status der Anforderung. Dies kann einer der folgenden Werte sein:

  • Idle   Die Verbindung verarbeitet derzeit keine Anforderung.

  • Unscheduled   Die Verbindung hat zu arbeiten und wartet auf einen Worker-Thread.

  • BlockedIO   Die Verbindung ist beim Warten auf einen I/O-Vorgang blockiert.

  • BlockedContention   Die Verbindung ist blockiert, weil sie auf den Zugriff auf gemeinsam genutzte Datenstrukturen des Datenbankservers wartet.

  • BlockedLock   Die Verbindung ist beim Warten auf eine gesperrtes Objekt blockiert.

  • Executing   Die Verbindung führt eine Anforderung aus.

ReqTimeUnscheduled DOUBLE Wartezeit ohne Zeitplanung
ReqTimeActive DOUBLE Verstrichene Zeit beim Warten auf das Verarbeiten von Anforderungen
ReqTimeBlockIO DOUBLE Verstrichene Zeit beim Warten auf den Abschluss eines I/O-Vorgangs
ReqTimeBlockLock DOUBLE Verstrichene Zeit beim Warten auf eine Sperre
ReqTimeBlockContention DOUBLE Verstrichene Zeit beim Warten auf einen unteilbaren Zugriff
ReqCountUnscheduled INT Häufigkeit des Wartens auf eine Zeitplanung
ReqCountActive INT Anzahl von verarbeiteten Anforderungen
ReqCountBlockIO INT Angabe, wie oft auf den Abschluss von I/O-Vorgängen gewartet wurde
ReqCountBlockLock INT Angabe, wie oft auf eine Sperre gewartet wurde
ReqCountBlockContention INT Angabe, wie oft auf einen unteilbaren Zugriff gewartet werden musste
LastIdle INT Die Anzahl der Computertakte zwischen Anforderungen
BlockedOn INT Falls die aktuelle Verbindung nicht blockiert ist, wird der Wert Null angezeigt. Falls sie blockiert ist, wird die Verbindungsnummer angezeigt, mit der die Verbindung bei einem Sperrenkonflikt blockiert ist.
UncommitOp INT Die Anzahl der nicht festgeschriebenen Vorgänge
CurrentProcedure VARCHAR(255) Die Prozedur, 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) Der Name des zugeordneten Ereignisses, wenn die Verbindung eine Ereignisverarbeitungsroutine (Event Handler) ausführt. Sonst ist das Ergebnis NULL.
CurrentLineNumber INT Die aktuelle Zeilennummer der Prozedur oder der Kombinationsanweisung, 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 Die zuletzt vorbereitete SQL-Anweisung für die aktuelle Verbindung
LastPlanText LONG VARCHAR Der ausführliche Textplan der letzten auf der Verbindung ausgeführten Abfrage
AppInfo LONG VARCHAR Informationen über den Client, der die Verbindung hergestellt hat. Bei HTTP-Verbindungen umfasst dies auch Angaben zum Browser. Bei Verbindungen, die ältere Versionen von jConnect oder Open Client verwenden, können die Informationen unvollständig sein. Der API-Wert kann DBLIB, ODBC, OLEDB oder ADO.NET sein.
LockCount INT Die Anzahl der Sperren, die die Verbindung besitzt
SnapshotCount INT Die Anzahl von Snapshots, die der Verbindung zugeordnet sind
Bemerkungen

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' );
Berechtigungen

DBA-Berechtigung erforderlich

Nebenwirkungen

Keine

Siehe auch
Beispiele

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,
      ReqTimeActive / T AS PercentActive
FROM  dbo.sa_performance_diagnostics()
WHERE 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  dbo.sa_performance_diagnostics()
WHERE ReqStatus <> 'IDLE' AND ReqTime > 60.0
ORDER BY ReqTime DESC;