スロークエリ
スロークエリ画面では、DBパラメータで設定された基準時間を超えた遅いSQLを監視・確認できます。MySQLはスロークエリをログファイルまたはテーブルに記録しますが、確認するにはDBサーバーにターミナルで接続してテキストログを直接読み取るか、mysql.slow_logテーブルを照会する必要があります。この画面では、スロークエリログをリアルタイムで収集し、視覚的なチャートとリストで提供します。
-
Slow Queryチャートで、遅いクエリの発生時点と実行時間を視覚的に把握できます。
-
Slow Query Listで、個別クエリの詳細情報を確認し、実行計画(Plan)を照会できます。
-
リアルタイム(Live)モードと過去時間照会の両方に対応しています。
ノート
スロークエリ収集には追加エージェントが必要です。オンプレミス環境ではXOSエージェント、クラウド(AWS RDSなど)環境ではDBXCエージェントをインストールしてください。
スロークエリチャートはダッシュボードのSQL Elapse Mapチャートと類似していますが、以下の違いがあります。
表 | スロークエリチャートとSQL Elapse Mapチャートの違い
| 区分 | スロークエリ | SQL Elapse Map |
|---|---|---|
| データソース | DBが記録するスロークエリログ | エージェントが5秒間隔で収集す るアクティブセッション |
| 実行時間の精度 | DBが記録した実際の実行時間で正確 | 5秒間隔収集のため、最大5秒の誤差が発生する可能性あり |
| 収集対象 | 設定基準時間(long_query_time)を超えたクエリのみ | 収集時点で実行中のすべてのアクティブセッション |
事前設定
この画面にデータを表示するには、DB設定、DBXエージェント設定、環境に応じてXOSエージェントまたはDBXCエージェントの設定が必要です。
DB設定
my.cnf(またはmy.ini)でスロークエリ関連パラメータを設定します。変更後、MySQLの再起動が必要です。
slow_query_log = 1
long_query_time = 3
log_output = FILE
| パラメータ | 説明 |
|---|---|
slow_query_log | スロークエリログの有効化。1で有効になります。 |
long_query_time | 設定値(秒)を超えるSQLをログに記録します。例:3の場合、3秒以上かかるSQLが記録されます。 |
log_output | ログの保存方式。FILEはファイルに、TABLEはmysql.slow_logテーブルに記録します。 |
ノート
log_output=TABLEに設定した場合、モニタリングアカウントに照会権限を付与する必要があります。ただし、TABLEモードはスロークエリの発生量が多い場合、DBパフォーマンスに影響を与える可能性があるため注意が必要です。
GRANT SELECT ON mysql.slow_log TO whatap;
DBXエージェント設定
whatap.confのslow_query_log