要求ログを分析し、文の実行時間を判別します。
sa_get_request_times( filename [, conn_id [, first_file [, num_files ] ] ] )
filename 要求ロギングのファイル名を指定する任意の LONG VARCHAR パラメータ。
conn_id 接続の ID 番号を指定する任意の UNSIGNED INTEGER パラメータ。
first_file 分析する最初のファイルを指定する任意の INTEGER パラメータ。
num_files 分析する要求ログ・ファイルの数を指定する任意の INTEGER パラメータ。
このプロシージャは、指定された要求ログを読み込み、ログから文とその実行時間をグローバル・テンポラリ・テーブル satmp_request_time に渡します。
INSERT や UPDATE のような文の場合、実行時間は単純です。クエリの場合は、文を記述する、カーソルを開く、ローをフェッチする、カーソルを閉じるなどの各操作を含め、文を準備してから削除するまでの時間が計算されます。ほとんどのクエリの場合、これには所要時間が正確に反映されます。カーソルが開いている間に、オペレータ操作やクライアント処理などの他のイベントが発生した場合は、時間値が大きく見えますが、クエリが高コストであることを示しているわけではありません。
このプロシージャは要求ログ内のホスト変数を認識し、それらの値をグローバル・テンポラリ・テーブル satmp_request_hostvar に移植します。このテンポラリ・テーブルがない古いデータベースの場合、ホスト変数の値は無視されます。
ログ・ファイルを指定しない場合、デフォルトは現在のログ・ファイルです。このファイルは、-zo を使用してコマンドで指定するか、または次のように指定します。
sa_server_option( 'RequestLogFile', filename ) |
接続 ID を指定すると、ログからの情報のフィルタに使用され、その接続に関する要求だけが取り出されます。
DBA 権限が必要です。
オートコミット
次のコマンドは、ファイル req.out.3、req.out.4、および req.out.5 内の要求の実行回数を取得します。
CALL sa_get_request_times('req.out',0,3,3); |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |