データベース・サーバが要求のタイミングの記録を有効にしたとき、すべての接続について要求のタイミング情報の概要を返します。
sa_performance_diagnostics( )
カラム名 | データ型 | 説明 |
---|---|---|
Number | INT | 接続の ID 番号。 |
Name | VARCHAR(255) | 接続の名前。 |
Userid | VARCHAR(255) | 接続のユーザ ID。 |
DBNumber | INT | データベースの ID 番号。 |
LoginTime | TIMESTAMP | 接続が確立された日付と時刻。 |
TransactionStartTime | TIMESTAMP | COMMIT または ROLLBACK の後にデータベースが最初に変更された時間。最後の COMMIT または ROLLBAK 以降にデータベースが変更されていない場合は空の文字列。 |
LastReqTime | TIMESTAMP | 指定の接続に対する最後の要求が開始した時間。 |
ReqType | VARCHAR(255) | 最終要求のタイプ。 |
ReqStatus | VARCHAR(255) |
要求のステータス。値は次のいずれかです。
|
ReqTimeUnscheduled | DOUBLE | 予定外に要した時間。 |
ReqTimeActive | DOUBLE | 要求を処理するときの待ち時間。 |
ReqTimeBlockIO | DOUBLE | I/O 終了までの待ち時間。 |
ReqTimeBlockLock | DOUBLE | ロックの待ち時間。 |
ReqTimeBlockContention | DOUBLE | アトミック・アクセスの待ち時間。 |
ReqCountUnscheduled | INT | スケジューリングを待った回数。 |
ReqCountActive | INT | 処理された要求の数。 |
ReqCountBlockIO | INT | I/O 終了を待った回数。 |
ReqCountBlockLock | INT | ロックを待った回数。 |
ReqCountBlockContention | INT | アトミック・アクセスを待った回数。 |
LastIdle | INT | 要求間のチックの数。 |
BlockedOn | INT | 現在の接続が制限されていない場合は 0。ブロックされている場合は、ロック矛盾によってブロックされる接続の数。 |
UncommitOp | INT | コミットされていないオペレーションの数。 |
CurrentProcedure | VARCHAR(255) | 接続が現在実行しているプロシージャ。接続でネストされたプロシージャ・コールが実行されている場合は、現在のプロシージャの名前を返します。実行されているプロシージャがない場合は、空の文字列を返します。 |
EventName | VARCHAR(255) | 接続でイベント・ハンドラが実行されている場合の関連するイベント名。それ以外の場合、結果は NULL。 |
CurrentLineNumber | INT | 接続で実行されているプロシージャまたは複合文の現在の行番号。実行されているプロシージャの名前は CurrentProcedure プロパティで取得できます。現在の行がクライアント側からの複合文の一部である場合は、空の文字列を返します。 |
LastStatement | LONG VARCHAR | 現在の接続で最後に作成された SQL 文。 |
LastPlanText | LONG VARCHAR | 接続で最後に実行されたクエリの長いテキスト・プラン。 |
AppInfo | LONG VARCHAR | 接続を確立したクライアントに関する情報。HTTP 接続では、ブラウザの情報が含まれています。jConnect または Open Client の古いバージョンを使った接続については、情報は不完全の場合があります。API 値は、DBLIB、ODBC、OLEDB、または ADO.NET のいずれかです。 |
LockCount | INT | 接続で保持されているロックの数。 |
SnapshotCount | INT | 接続に関連付けられているスナップショットの数。 |
sa_performance_diagnostics システム・プロシージャは、要求のタイミング・プロパティで構成される結果セットと統計情報 (統計情報を収集するようにサーバに指示されている場合) を返します。要求のタイミング情報の記録は、sa_performance_diagnostics の呼び出し前にデータベース・サーバでオンにする必要があります。文の記録をオンにするには、データベース・サーバの起動時に -zt オプションを指定するか、次の文を実行します。
CALL sa_server_option( 'RequestTiming','ON' ); |
DBA 権限が必要です。
なし
次のクエリを実行すると、データベース・サーバ要求が終了するまでの待ち時間が長い接続が識別されます。
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; |
現在実行中で、60 秒よりも長く実行されているすべての要求を検索します。
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; |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |