4. SQL実行時間監視の実行方法

SQL実行時間監視の実行方法について説明します。


4.1. 実行方法について

SQL実行時間監視の実行は、 mfotoolsのインストール先のbinディレクトリ配下にある mfo_sql_elapsed_time_alert.py コマンドを実行することでSQL実行時間監視が実行されます。

4.1.1. コマンドの実行方法

mfo_sql_elapsed_time_alert.py の実行は引数なしで実行します。

Windows環境

コマンドプロンプトから実行します。

cd <mfotoolsのインストール先ディレクトリ>\bin
mfo_sql_elapsed_time_alert.py

もしくは、フルパスで実行も可能です。

<mfotoolsのインストール先ディレクトリ>\bin\mfo_sql_elapsed_time_alert.py

Linux環境

cd /opt/maxgauge/mfotools/bin
./mfo_sql_elapsed_time_alert.py

もしくは、フルパスで実行も可能です。

/opt/maxgauge/mfotools/bin/mfo_sql_elapsed_time_alert.py

注釈

mfo_sql_elapsed_time_alert.py コマンドに debug を付けて実行することでデバッグモードで実行されます。 標準出力とスクリプト動作ログにデバッグレベルのメッセージが出力されます

mfo_sql_elapsed_time_alert.py debug

4.1.2. コマンドの定期実行

SQL実行時間監視の定期的な実行は、 mfo_sql_elapsed_time_alert.py をスケジューラに登録して定期的に実行してください。

Windows環境

タスクスケジューラに登録して定期的に実行してください。

タスクスケジューラの登録例

  1. ファイル名を指定して実行 から Taskschd.msc を実行してタスクスケジューラを起動します
    ../_images/sql_elapsed_win_tasksc_01.png
  2. タスクスケジューラの画面で タスクの作成 をクリックします

  3. タスク作成の窓が表示されます、全般タブを以下の設定にします

    タスクの作成:全般

    設定項目

    説明

    名前

    識別できる適当なタスク名を入力

    ユーザがログオンしてるかどうかにかかわらず実行する

    チェック

    ../_images/sql_elapsed_win_tasksc_02.png
  4. トリガータブを以下の設定にします

    トリガータブ

    設定項目

    説明

    設定

    「毎日」にチェック、開始は適当な未来の時間を指定

    詳細設定

    繰り返し間隔を、監視したい間隔の時間を選択します

    ../_images/sql_elapsed_win_tasksc_03.png

    注釈

    画像の例では、5分間隔 で実行されます

  5. 操作タブから [新規] ボタンをクリックして、新しい操作の窓を表示します

  6. 新しい操作の窓の各項目を以下の設定にします

    新しい操作

    設定項目

    説明

    プログラム/スクリプト

    MaxGaugeサーバにインストールされた python.exe のフルパスを指定します

    引数の追加

    mfo_sql_elapsed_time_alert.py

    開始

    MFOTOOLSの bin フォルダを指定します。例: C:\EXEM\MFO53\mfotools\bin

    ../_images/sql_elapsed_win_tasksc_04.png

    注釈

    画像の例は、以下の環境での設定になります

    Pythonのインストール先 : C:\Python27python.exe のフルパスは C:\Python27\python.exe )
    MFOTOOLSのインストール先 : C:\EXEM\MFO53\mfotools

Linux環境

CRONに登録して、定期的に実行します。

CRONの登録例

*/5 * * * * /opt/maxgauge/mfotools/bin/mfo_sql_elapsed_time_alert.py > /dev/null 2>&1

4.2. 個別SQL閾値の設定について

個別SQL閾値の設定方法について説明いたします。


4.2.1. 個別SQL閾値の設定

特定のSQLに対してSQL実行時間の閾値を設定することができます。


個別SQL閾値の追加

mfo_sql_elapsed_time_alert.py ext sql add コマンドで登録対象のSQL IDと各閾値を指定して登録します。

コマンド

mfo_sql_elapsed_time_alert.py ext sql add -s <対象のSQL_ID> -sh <対象スキーマ名> -i <対象インスタンス名> -w <ワーニングの閾値> -c <クリティカルの閾値>

オプション詳細

mfo_sql_elapsed_time_alert.py ext sql add のパラメータ詳細

オプション

説明

必須

-s, --sqlid

対象のSQL IDを指定

-w, --warning

ワーニングの閾値を指定

-c, --critiacl

クリティカルの閾値を指定

-i, --instance

対象のインスタンス名を指定。複数のインスタンスを指定する場合は、カンマ区切りで指定。このパラメータを指定しない場合は、全てのインスタンスが対象となります。

×

-sh, --schemaname

対象のスキーマ名を指定。複数のスキーマを指定する場合は、カンマ区切りで指定。このパラメータを指定しない場合は、全てのスキーマが対象となります。

×


設定した個別SQL閾値の表示

mfo_sql_elapsed_time_alert.py ext print_settings コマンドで登録した個別SQL閾値を表示します。

コマンド

mfo_sql_elapsed_time_alert.py ext print_settings

注釈

登録時にインスタンス名( -i オプション)やスキーマ名( -sh オプション)を指定していない場合、 INSTANCESCHEMA に「 @ALL 」と表示されます。


個別SQL閾値の変更

mfo_sql_elapsed_time_alert.py ext sql add コマンドで登録した個別SQL閾値を変更することが出来ます。 変更可能なオプションは、ワーニングの閾値 と クリティカルの閾値 になります。変更は、 SQL ID 、 INSTANCE 、 SCHEMA の設定値と一致した設定が変更されます。

コマンド

mfo_sql_elapsed_time_alert.py ext sql add -s <変更対象のSQL_ID> -sh <変更対象スキーマ名> -i <変更対象インスタンス名> -w <変更するワーニングの閾値> -c <変更するクリティカルの閾値>

オプション詳細

mfo_sql_elapsed_time_alert.py ext sql add のパラメータ詳細

オプション

説明

必須

-s, --sqlid

対象のSQL IDを指定

-w, --warning

ワーニングの閾値を指定

-c, --critiacl

クリティカルの閾値を指定

-i, --instance

変更対象のインスタンス名を指定。複数のインスタンスを指定する場合は、カンマ区切りで指定。このパラメータを指定しない場合は、対象が「@ALL」になります

-sh, --schemaname

変更対象のスキーマ名を指定。複数のスキーマを指定する場合は、カンマ区切りで指定。このパラメータを指定しない場合は、対象が「@ALL」になります


個別SQL閾値の削除

mfo_sql_elapsed_time_alert.py ext sql del コマンドで登録した個別SQL閾値を削除することが出来ます。

コマンド

mfo_sql_elapsed_time_alert.py ext sql del -s <削除対象のSQL_ID> -sh <削除対象スキーマ名> -i <削除対象インスタンス名>

オプション詳細

mfo_sql_elapsed_time_alert.py ext sql del のパラメータ詳細

オプション

説明

必須

-s, --sqlid

削除対象のSQL IDを指定

-i, --instance

削除対象のインスタンス名を指定。複数のインスタンスを指定する場合は、カンマ区切りで指定。このパラメータを指定しない場合は、対象が「@ALL」になります

-sh, --schemaname

削除対象のスキーマ名を指定。複数のスキーマを指定する場合は、カンマ区切りで指定。このパラメータを指定しない場合は、対象が「@ALL」になります