データベースで実行されたプロシージャー、関数、イベント、またはトリガー内の各行について、実行時間に関する情報をレポートします。
sa_procedure_profile( [ filename [, save_to_file ] ] )
filename 任意の LONG VARCHAR パラメーターを使用して、プロファイル情報を保存するファイル、またはロードするファイルを指定します。プロファイル情報の保存とロードの詳細については、以下の備考部分を参照してください。
save_to_file プロファイル情報をファイルに保存するか、前に保存したファイルからロードするかを指定する任意の INTEGER パラメーター。
カラム名 | データ型 | 説明 |
---|---|---|
object_type | CHAR(1) | オブジェクトのタイプ。使用できるオブジェクトタイプのリストについては、以下の備考部分を参照してください。 |
object_name | CHAR(128) | ストアドプロシージャー、関数、イベント、またはトリガーの名前。object_type が C または D の場合、これはシステムトリガーが定義された外部キーの名前です。 |
owner_name | CHAR(128) | オブジェクトの所有者。 |
table_name | CHAR(128) | トリガーに対応するテーブル (他のオブジェクトタイプの場合、値は NULL)。 |
line_num | UNSIGNED INTEGER | プロシージャー内の行番号。 |
executions | UNSIGNED INTEGER | 行の実行回数。 |
millisecs | UNSIGNED INTEGER | 行の実行時間 (ミリ秒単位)。 |
percentage | DOUBLE | 全体的な実行時間に対する特定の行の実行時間の割合。 |
foreign_owner | CHAR(128) | システムトリガーの外部テーブルを所有するデータベースユーザー。 |
foreign_table | CHAR(128) | システムトリガーの外部テーブルの名前。 |
このプロシージャーは、Sybase Central の [プロファイル] タブと同じ情報を提供します。
このプロシージャーは、次の用途で使用できます。
詳細なプロシージャーのプロファイル情報を返す この場合、引数指定することなく、プロシージャーを呼び出すだけです。
詳細なプロシージャーのプロファイル情報をファイルに保存 この場合、filename 引数を含め、save_to_file 引数に 1 を指定します。
詳細なプロシージャーのプロファイル情報を前に保存したファイルからロード この場合、filename 引数を含め、save_to_file 引数に 0 を指定します (デフォルトが 0 のため、そのまま何も指定しなくてもかまいません)。この方法でプロシージャーを使用できるのは、ロードするファイルが、プロシージャーを実行するデータベースと同じデータベースで作成されたものである場合です。それ以外の場合、結果は使用できない可能性があります。
結果セットには、プロシージャー、トリガー、関数、イベント内の個々の行に関する実行回数の情報と、行が使用するプロシージャーの合計の実行回数の割合が含まれるため、このプロファイル情報を使用して、パフォーマンスを低下させる可能性がある遅いプロシージャーを微調整できます。
プロファイリングを有効にしてから、データベースのプロファイルを作成します。
結果セットの object_type カラムは、次のようになります。
P ストアドプロシージャー
F 関数
E イベント
T トリガー
C ON UPDATE システムトリガー
D ON DELETE システムトリガー
各実行について、行ごとの詳細ではなく、概要情報が必要な場合、sa_procedure_profile_summary プロシージャーを使用します。
DBA 権限。
なし。
次の文は、データベースで実行されたすべてのプロシージャー、関数、イベント、またはトリガーの各行について実行時間を返します。
CALL sa_procedure_profile( ); |
次の文は、上記の例と同じ詳細なプロシージャーのプロファイル情報を返し、この情報をファイル detailedinfo.txt に保存します。
CALL sa_procedure_profile( "detailedinfo.txt", 1 ); |
次の文はいずれも、ファイル detailedinfoOLD.txt から詳細なプロシージャーのプロファイル情報をロードするときに使用できます。
CALL sa_procedure_profile( "detailedinfoOLD.txt", 0 ); |
CALL sa_procedure_profile( "detailedinfoOLD.txt" ); |
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |