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

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL リファレンス » システム・オブジェクト » システム・プロシージャ » システム・プロシージャのアルファベット順リスト

 

sa_performance_diagnostics システム・プロシージャ

データベース・サーバが要求のタイミングの記録を有効にしたとき、すべての接続について要求のタイミング情報の概要を返します。

構文

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)

要求のステータス。値は次のいずれかです。

  • Idle   この接続では現在、要求を処理していない。

  • Unscheduled   この接続では他の処理が実行されており、ワーカ・スレッドの解放を待っている。

  • BlockedIO   この接続はブロックされ、I/O 処理の完了を待っている。

  • BlockedContention   この接続はブロックされ、共有データベース・サーバ・データ構造体へのアクセスを待っている。

  • BlockedLock   この接続はブロックされ、オブジェクトのロックの解放を待っている。

  • Executing   この接続では現在、要求を実行している。

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;