データベースサーバが要求のタイミングの記録を有効にしたとき、すべての接続について要求のタイミング情報の概要を返します。
sa_performance_diagnostics( )
カラム名 | データ型 | 説明 |
---|---|---|
Number | INTEGER |
現在の接続の接続 ID (数値) を返します。 |
Name | VARCHAR(255) |
現在の接続の名前を返します。 ConnectionName (CON) 接続パラメータを使用して接続名を指定できます。ConnectionName (CON) 接続パラメータを参照してください。 データベースサーバによって作成されるテンポラリ接続には次の名前が使用されます。
テンポラリ接続を参照してください。 |
Userid | VARCHAR(255) |
接続のユーザ ID を返します。 |
DBNumber | INTEGER |
データベースの ID 番号を返します。 |
LoginTime | TIMESTAMP |
接続が確立された日付と時刻を返します。 |
TransactionStartTime | TIMESTAMP |
COMMIT または ROLLBACK の後にデータベースが最初に変更された時刻を含む文字列を返します。最後の COMMIT または ROLLBAK 以降にデータベースが変更されていない場合は、空の文字列を返します。 |
LastReqTime | TIMESTAMP |
指定された接続において最後の要求が開始された時刻を返します。このプロパティは、イベントなどの内部接続の場合は空の文字列を返すことがあります。 |
ReqType | VARCHAR(255) |
最後の要求のタイプを返します。接続が接続プールによってキャッシュされる場合、その ReqType 値は CONNECT_POOL_CACHE になります。 |
ReqStatus | VARCHAR(255) |
要求のステータスを返します。値は次のいずれかです。
アスタリスク (*) が付いている値が返されるのは、-zt サーバオプションによってデータベースサーバで要求タイミング情報のロギングがオンになっている場合に限られます。要求タイミング情報のロギングが実行されていない場合は (デフォルト)、値は Executing として返されます。 -zt データベースサーバオプションを参照してください。 |
ReqTimeUnscheduled | DOUBLE |
未スケジュール時間を返します。-zt オプションが指定されていない場合は、NULL を返します。-zt データベースサーバオプションを参照してください。 |
ReqTimeActive | DOUBLE |
要求の処理にかかった時間 (秒単位)、または、-zt オプションが指定されていなかった場合は NULL を返します。-zt データベースサーバオプションを参照してください。 |
ReqTimeBlockIO | DOUBLE |
I/O 処理の完了を待っていた時間 (秒単位)、または、-zt オプションが指定されていなかった場合は NULL を返します。-zt データベースサーバオプションを参照してください。 |
ReqTimeBlockLock | DOUBLE |
ロックを待っていた時間 (秒単位)、または、-zt オプションが指定されていなかった場合は NULL を返します。-zt データベースサーバオプションを参照してください。 |
ReqTimeBlockContention | DOUBLE |
アトミックアクセスを待っていた時間 (秒単位)、または、RequestTiming サーバプロパティが Off に設定されている場合は NULL を返します。-zt データベースサーバオプションを参照してください。 |
ReqCountUnscheduled | INTEGER |
接続がスケジューリングを待った回数を返します。-zt オプションが指定されていない場合は、NULL を返します。-zt データベースサーバオプションを参照してください。 |
ReqCountActive | INTEGER |
処理が完了した要求の数を返します。RequestTiming サーバプロパティが Off に設定されている場合は、NULL を返します。-zt データベースサーバオプションを参照してください。 |
ReqCountBlockIO | INTEGER |
接続が I/O 処理の完了を待った回数を返します。-zt オプションが指定されていない場合は、NULL を返します。-zt データベースサーバオプションを参照してください。 |
ReqCountBlockLock | INTEGER |
接続がロックの解放を待った回数を返します。-zt オプションが指定されていない場合は、NULL を返します。-zt データベースサーバオプションを参照してください。 |
ReqCountBlockContention | INTEGER |
接続がアトミックアクセスを待った回数を返します。-zt オプションが指定されていない場合は、NULL を返します。-zt データベースサーバオプションを参照してください。 |
LastIdle | INTEGER |
要求間のチック数を返します。 |
BlockedOn | INTEGER |
現在の接続がブロックされていない場合は 0 を返し、ブロックされている場合はロック競合によってブロックされた接続の接続番号を返します。 |
UncommitOp | INTEGER |
コミットされていない操作の数を返します。 |
CurrentProcedure | VARCHAR(255) |
接続で現在実行されているプロシージャの名前を返します。接続でネストされたプロシージャコールが実行されている場合は、現在のプロシージャの名前を返します。実行されているプロシージャがない場合は、空の文字列を返します。 |
EventName | VARCHAR(255) |
接続でイベントハンドラが実行されている場合、関連付けられているイベントの名前を返します。それ以外の場合は、空の文字列が返されます。 |
CurrentLineNumber | INTEGER |
接続で実行されているプロシージャまたは複合文の現在の行番号を返します。実行されているプロシージャの名前は CurrentProcedure プロパティで取得できます。現在の行がクライアント側からの複合文の一部である場合は、空の文字列を返します。 |
LastStatement | LONG VARCHAR |
現在の接続で最後に準備された SQL 文を返します。 LastStatement の値は、文が準備されると同時に設定され、文が削除されると同時にクリアされます。各接続につき 1 つの文の文字列のみが記憶されます。 ある接続について sa_conn_activity が空でない値を返した場合、その接続で現在実行されている文である可能性が高くなります。その文が完了している場合は、文がすでに削除され、このプロパティの値がクリアされている可能性があります。アプリケーションが複数の文を準備し、それらの文のステートメントハンドルを保持している場合、LastStatement が返す値は接続で現在実行されている処理を表しません。 クライアントでの文のキャッシュが有効であり、キャッシュされた文が再使用されているとき、このプロパティは空の文字列を返します。 |
LastPlanText | LONG VARCHAR |
接続で最後に実行されたクエリの長いテキストプランを返します。最後のプランを記憶するかどうかは、sa_server_option システムプロシージャの RememberLastPlan オプションを設定するか、-zp サーバオプションを使用することで制御します。-zp データベースサーバオプションを参照してください。 |
AppInfo | LONG VARCHAR |
接続を確立したクライアントに関する情報を返します。HTTP 接続では、ブラウザの情報が含まれています。jConnect または Sybase Open Client の古いバージョンを使った接続については、情報は不完全の場合があります。 API 値は、DBLIB、ODBC、OLEDB、ADO.NET、iAnywhereJDBC、PHP、PerlDBD、DBEXPRESS のいずれかです。 その他のタイプの接続について返される値の詳細については、AppInfo (APP) 接続パラメータを参照してください。 |
LockCount | INTEGER |
接続で保持されているロックの数を返します。 |
SnapshotCount | INTEGER |
接続に関連付けられているスナップショットの数を返します。 |
sa_performance_diagnostics システムプロシージャは、要求のタイミングプロパティで構成される結果セットと統計情報 (統計情報を収集するようにサーバに指示されている場合) を返します。要求のタイミング情報の記録は、sa_performance_diagnostics の呼び出し前にデータベースサーバでオンにする必要があります。オンにするには、データベースサーバの起動時に -zt オプションを指定するか、次の文を実行します。
CALL sa_server_option( 'RequestTiming','ON' ); |
MONITOR システム権限が必要です。
なし。
次のクエリを実行すると、データベースサーバ要求が完了するまでの待ち時間が長い接続が識別されます。
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; |
現在実行中で、60 秒よりも長く実行されているすべての要求を検索します。
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; |
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |