ServiceDesk Plus オンプレミス版 ナレッジベース

スロークエリログ(MySQL)の有効化手順


【スロークエリログについて】
スロークエリログは、MySQL設定の long_query_timeで設定されている秒数以上のクエリ実行時間を必要とした SQLステートメントを記録するログです。
記録するタイミングは、クエリが完了し、すべてのロックが解放された後になります。
アプリケーション開発時やデバッグ時に、処理時間のかかるクエリおよびインデックスを利用していないクエリを特定し、
チューニングすべきクエリを識別するためにスロークエリーログを利用できます。
【設定手順】

1. ServiceDesk Plus を停止
2.[ServiceDeskホーム]binstartDB.bat をエディタで開く
3. ファイルの最終行に下記を追記
(下記設定では、クエリの実行時間が6秒以上かかった場合にクエリをログに出力します)

--log-slow-queries --long-query-time=6

(例) 下記のようになります。

@start "MySQL" /B "%DB_HOME%binmysqld" --standalone --lower-case-table-names=1 --basedir="%DB_HOME%" --port=%DB_PORT% --datadir="%DB_HOME%data" --default-character-set=utf8 --log-slow-queries --long-query-time=6

4. ファイルを保存
5. ServiceDesk Plus を起動
6. 今後現象が発生したら、下記のログファイルの送付をお願いします。

[ServiceDeskホーム]mysqldata[サーバ名]-slow.log
[ServiceDeskホーム]binwrapper.log
[ServiceDeskホーム]serverdefaultlogserverout0.txt
[ServiceDeskホーム]serverdefaultlogserverout1.txt
[ServiceDeskホーム]serverdefaultlogserverout2.txt

【注意事項】
ログファイルのローテーション機能は実装していません。
現象発生後のスローログを取得した場合は、スローログ出力設定を無効にしてください。
また、ログの出力条件を制限するため、下記のオプションの値を変更することで、
ログの出力内容を抑えることが可能です。
--long-query-time=60
* 上記の場合、クエリ実施に60秒かかった場合にそのクエリをログに出力します。
  このオプションを指定しない場合のデフォルト値は10秒です。