目次
MySQL Enterprise サブスクリプション、MySQL Enterprise Monitor、MySQL Replication Monitor、および MySQL Query Analyzer は、営利目的のお客様のみ利用できます。詳細については、http://www.mysql.com/products/enterprise/features.html を参照してください。
Query Analyzer を使用すると、監視対象サーバで実行されているステートメントを監視し、クエリ、実行数、各クエリの実行回数に関する情報を参照できます。クエリは正規化されるため、各クエリ内で定義されている固有のデータは削除されます。クエリのデータ固有の要素を削除することで、汎用クエリをより簡単にカウントおよび特定できます。
MySQL Query Analyzer は、さまざまなソースからクエリのパフォーマンス情報を収集するように設計されています。Query Analyzer は、新しいエージェントプラグインを使用してクエリをプロキシし、パフォーマンスデータを収集します。このデータはあとで Enterprise Monitor に送信されます。これはエージェントの新しい役割です。エージェントは単に監視するだけでなく、設定によっては MySQL クライアントアプリケーションと MySQL サーバを仲介するようになりました。
システムの負荷に応じて、プロキシに過負荷をかけることも、MySQL
自体に必要なシステムリソースをプロキシ/エージェントで消費させることもできます。特に、MySQL
エージェントが基本的な監視に必要とするメモリの量はかなり小さく一定で、有効にしているルールの数に依存します。しかし、Query
Analyzer
が有効な場合、エージェントを通してどのクエリを監視し解析するにしても、エージェントはかなりのメモリを使用する可能性があります。このような場合、使用されるメモリは固有の正規化クエリの数、クエリ例、EXPLAIN
例に依存します。さらに、このクエリのパフォーマンスデータを
Service Manager
に送信するために必要なネットワーク帯域幅にも依存します。一般に、Query
Analyzer
に使用されるメモリ量はよく抑制されていますが、負荷の高い状況や、場合によっては古いバージョンの
Linux で、Query Analyzer による RAM
の使用率が環境と負荷に対して高くなりすぎることがあります。
したがって、このリリースの Query Analyzer を本番環境で使用する前に、開発環境、テスト環境、ステージング環境で長期間、負荷の下で幅広く使用することをお勧めします。すべての配備において、次の点に留意してください。
グラフ タブで使用できる新しい メモリ使用状況 - エージェント グラフを使用して、エージェントのリソース消費を注意深く監視してください。新しいヒートチャートルール MySQLエージェントがメモリを過度に使用しています。 に SMTP または SNMP 通知を追加することもできます。
メモリ使用量が大きすぎる場合、非ピーク時にクエリをサンプルするか、システム内の一部のクエリのみを監視することを検討してください。
Query Analyzer で問題が発生した場合は、緊密な協力によって迅速に解決したいと考えています。すぐにサポート問題を開いてください。エージェント/プロキシの RAM 使用率の最適化にはすでに取り組んでおり、これらも含めた改善点をお客様に迅速に届けるために一連のラピッドリリースを計画しています。
Query Analyzer は、MySQL クライアントアプリケーションが MySQL サーバに送る SQL ステートメントを受け取ります。クエリは、MySQL Server に直接接続するのではなく、MySQL Enterprise Service Agent を介して送信されます。エージェント/プロキシは、クエリをサーバに送り、その応答を通常どおりクライアントアプリケーションに戻します。また、エージェント/プロキシはクエリを転送するほか、クエリを正規化して、各クエリに関する実行情報をモニターに提供します。転送機能は、MySQL Proxy アプリケーションをサポートするモジュールと同じモジュールで提供されます。MySQL Proxy については、「MySQL Proxy」を参照してください。
MySQL Proxy コンポーネントと Query Analyzer では、MySQL Enterprise Service Agent を介して接続するクライアントが MySQL 5.0 以降を使用していることを必要とします。MySQL 4.1 以前で提供されているライブラリを使用しているクライアントは、MySQL Enterprise Service Agent で動作しません。
MySQL Enterprise Service Agent を介して通信するように MySQL クライアントアプリケーションが設定されると、クエリが監視され、クエリ固有データを削除し簡素化されたクエリが MySQL Enterprise Service Agent に送信されます。
Query Analysis はさまざまな方法で有効にすることができます。各オプションの詳細は、項9.1. 「Query Analyzer の有効化」を参照してください。
エージェント/プロキシによりキャプチャされるクエリを解析するには、ページを「Query
Analyzer
」ページに変更します。このページのテーブルの例を次の図に示します。
Query Analyzer のメインテーブルには、エージェント/プロキシを介して実行されるすべてのクエリの要約情報が表示されます。このテーブルでは、エージェント/プロキシを介してサーバに送信されるすべてのクエリが追跡されます。このページに表示される行は最大 20 行で、ページ番号または「次へ」ボタン、「前へ」ボタン、「最初」ボタン、「最後」ボタンを使用して、クエリリストのページを切り替えることができます。表示されるクエリのリストをフィルタリングする、またはクエリ数を変更するには、項9.4. 「Query Analyzer データのフィルタリング」を参照してください。
テーブルの各行には、正規化されたクエリステートメントの統計情報が示されます。クエリを受け取り、異なるサーバにそのクエリを転送するように複数のエージェント/プロキシを設定している場合、サーバビューを拡張できます。表示される要約情報は、サーバグループまたは個々のサーバを選択しているかにより異なります。
サーバグループを選択している場合、表示される情報は、グループ全体から収集されます。複数のサーバで同じクエリが実行される場合、すべてのサーバにおけるそのクエリの平均、合計、最小/最大に関する情報が示されます。個々のサーバを選択した場合、そのサーバで実行されるクエリのみがこのテーブルに表示されます。
各行には、選択したフィルタリングオプションに従って、次のカラムが追加されます。たとえば、30 分以内に実行されたクエリを表示するようにフィルタ(Interval)が設定されている場合、この間に実行されたクエリのみが表示されます。また、この 30 分という時間内での実行回数、返された行数やバイト数などの統計情報が表示されます。
クエリ — クエリの正規化されたバージョン。正規化により、クエリ固有のデータが削除され、データパラメータが異なるさまざまなクエリも同じ基本クエリとして識別されます。
情報は一行あたり 1 クエリが表示されます。各クエリ行は拡張して、そのクエリの個々のサーバにおける実行回数を表示できます。
データベース — クエリの時点で使用されているデフォルトのデータベース。クエリ内でデータベース名を明示的に指定した場合、このデータベース名はクエリ内で使用されるデータベースと一致しないことがあります。
実行カウント — クエリが実行された回数。
実行時間 — 一致するすべてのクエリの実行時間。これは、対応するクエリの呼び出しごとの時間で、クエリが送信された時間と、サーバにより結果が戻された時間を比較して計算されます。時間は、HH:MM:SS.MS(時、分、秒、ミリ秒)で表示されます。
「実行」カラムは、さらに次に示すカラムに分割されます。
カウント — 合計実行数
合計 — このクエリのすべての実行での累積実行時間
最長 — このクエリの実行での最大実行時間
平均 — このクエリの実行での平均実行時間
このクエリで提供される情報を参照する場合、調査が必要な問題があったら、平均および最大実行時間を比較して、特定のサーバ、またはクエリが発生した特定の時間に問題が発生しているかを確認してください。詳細については、項9.5. 「Query Analyzer データの使用」を参照してください。
行数 — クエリにより返された行。このカラムは、さらに次のカラムに分割されます。
合計 — クエリのすべての実行で返された合計行数
最長 — クエリの 1 回の実行で返された最大行数
平均 — クエリのすべての実行で返された平均行数
バイト数 — 各クエリで返されたバイト数。このカラムは、さらに次のカラムに分割されます。
合計 — クエリのすべての実行で返された合計バイト数
最長 — クエリの 1 回の実行で返された最大バイト数
平均 — クエリのすべての実行で返された平均バイト数
初回実行 — 指定されたフィルタ条件内でのクエリの最初の検出
クエリのリストをソートするには、カラム名をクリックします。ソート方向(降順または昇順)は、現在選択しているカラムの横に表示されている三角形で示されます。デフォルトでは、「合計実行時間」でクエリのリストがソートされています。