目次
Query Analyzer を使用すると、監視対象サーバで実行されているステートメントを監視し、クエリ、実行数、各クエリの実行回数に関する情報を参照できます。クエリは正規化されるため、各クエリ内で定義されている固有のデータは削除されます。クエリのデータ固有の要素を削除することで、汎用クエリをより簡単にカウントおよび特定できます。
Query Analyzer は、クライアントアプリケーションが MySQL サーバに送る SQL ステートメントを受け取ります。クエリは、MySQL Server に直接接続するのではなく、MySQL MySQL Enterprise Service Agent を介して送信されます。エージェントは、クエリをサーバに送り、その応答を通常どおりクライアントアプリケーションに戻します。また、エージェントはクエリを転送するほか、クエリを正規化して、各クエリに関する実行情報をモニターに提供します。転送機能は、MySQL Proxy アプリケーションをサポートするモジュールと同じモジュールで提供されます。MySQL Proxy については、「MySQL Proxy」を参照してください。
MySQL Enterprise Service Agent を介して通信するようにアプリケーションが設定されると、クエリが監視され、クエリ固有データを削除し簡素化されたクエリが MySQL Enterprise Service Agent に送信されます。
Query Analysis はさまざまな方法で有効にすることができます。各オプションの詳細は、項9.1. 「Query Analyzer の有効化」を参照してください。
エージェントによりキャプチャされるクエリを解析するには、ページを「Query
Analyzer
」ページに変更します。このページのテーブルの例を次の図に示します。
Query Analyzer のメインテーブルには、エージェントを介して実行されるすべてのクエリの要約情報が表示されます。このテーブルでは、エージェントを介してサーバに送信されるすべてのクエリが追跡されます。このページに表示される行は最大 20 行で、ページ番号または「次へ」ボタン、「前へ」ボタン、「最初」ボタン、「最後」ボタンを使用して、クエリリストのページを切り替えることができます。表示されるクエリのリストをフィルタリングする、またはクエリ数を変更するには、項9.3. 「Query Analyzer データのフィルタリング」を参照してください。
テーブルの各行には、正規化されたクエリステートメントの統計情報が示されます。クエリを受け取り、異なるサーバにそのクエリを転送するように複数のエージェントを設定している場合、サーバビューを拡張できます。表示される要約情報は、サーバグループまたは個々のサーバを選択しているかにより異なります。
サーバグループを選択している場合、表示される情報は、グループ全体から収集されます。複数のサーバで同じクエリが実行される場合、すべてのサーバにおけるそのクエリの平均、合計、最小/最大に関する情報が示されます。個々のサーバを選択した場合、そのサーバで実行されるクエリのみがこのテーブルに表示されます。
各行には、選択したフィルタリングオプションに従って、次のカラムが追加されます。たとえば、30 分以内に実行されたクエリを表示するようにフィルタ(間隔)が設定されている場合、この間に実行されたクエリのみが表示されます。また、この 30 分という時間内での実行回数、返された行数やバイト数などの統計情報が表示されます。
クエリ — クエリの正規化されたバージョン。正規化により、クエリ固有のデータが削除され、データパラメータが異なるさまざまなクエリも同じ基本クエリとして識別されます。
情報は一行あたり 1 クエリが表示されます。各クエリ行は拡張して、そのクエリの個々のサーバにおける実行回数を表示できます。
データベース — クエリで使用されたデータベースの名前。クエリ内でデータベース名が明示的に指定されていない場合、このカラムは空白になることがあります。
実行カウント — クエリが実行された回数。
実行時間 — 一致するすべてのクエリの実行時間。これは、対応するクエリの呼び出しごとの時間で、クエリが送信された時間と、サーバにより結果が戻された時間を比較して計算されます。時間は、HH:MM::SS.MS(時、分、秒、ミリ秒)で表示されます。
「実行」カラムは、さらに次に示すカラムに分割されます。
カウント — 合計実行数
合計 — このクエリのすべての実行での累積実行時間
最長 — このクエリの実行での最大実行時間
平均 — このクエリの実行での平均実行時間
このクエリで提供される情報を参照する場合、調査が必要な問題があったら、平均および最大実行時間を比較して、特定のサーバ、またはクエリが発生した特定の時間に問題が発生しているかを確認してください。詳細については、項9.4. 「Query Analyzer データの使用」を参照してください。
行数 — クエリにより返された行。このカラムは、さらに次のカラムに分割されます。
合計 — クエリのすべての実行で返された合計行数
最長 — クエリの 1 回の実行で返された最大行数
平均 — クエリのすべての実行で返された平均行数
バイト数 — 各クエリで返されたバイト数。このカラムは、さらに次のカラムに分割されます。
合計 — クエリのすべての実行で返された合計バイト数
最長 — クエリの 1 回の実行で返された最大バイト数
平均 — クエリのすべての実行で返された平均バイト数
初回実行 — 指定されたフィルタ条件内でのエイリアスの最初の検出
クエリのリストをソートするには、カラム名をクリックします。ソート方向(降順または昇順)は、現在選択しているカラムの横に表示されている三角形で示されます。デフォルトでは、「合計実行時間」でクエリのリストがソートされています。
Query Analyzer を有効にする方法は次の 3 種類があります。
インストール中に設定した Proxy ポートと通信するようにアプリケーションを変更します。この場合、アプリケーションコードを変更する必要があります。また、場合によっては、アプリケーションを停止して再起動する必要もあります。ただし、MySQL サーバの変更は必要ありません。詳細については、項9.1.1. 「アプリケーションを変更して Query Analyzer を有効にする」を参照してください。
MySQL サーバのリスンポートを変更して、元の MySQL サーバポートでリスンするように Agent を設定します。アプリケーションを変更する必要はありませんが、MySQL サーバをシャットダウンして再起動する必要があります。これにより、キャッシュおよびパフォーマンスに影響を及ぼすおそれがあります。詳細については、項9.1.2. 「MySQL Server を変更して Query Analyzer を有効にする」を参照してください。
IP テーブルを使用して、ネットワークパケットをエージェントにリダイレクトします。
インストール中に、エージェント内で Query Analyzer
を有効にしている必要があることに注意してください。エージェントのインストール中に
Query Analyzer を有効にしていない場合、メインの
mysql-monitor-agent.ini
設定ファイル内で次の要素を確認してください。
proxy
プラグインを
plugins
パラメータに追加します。
plugins=proxy,agent
quan.lua
アイテムファイルが
agent-item-files
設定プロパティで有効にされていることを確認します。
agent-item-files = share/mysql-proxy/items/quan.lua,share/mysql-proxy/items/items-mysql-monitor.xml
proxy-address
、proxy-backend-addresses
、proxy-lua-script
を確認して、次のように設定されているか確認します。
proxy-address=:4040 proxy-backend-addresses = 127.0.0.1:3306 proxy-lua-script = share/mysql-proxy/quan.lua
これらの設定オプションの詳細は、項2.6.1. 「MySQL Enterprise Service Agent(mysql-monitor-agent.ini
)の設定」を参照してください。
クエリが正しく MySQL Enterprise Service Manager に報告されるように、サーバのセキュリティ設定を変更しなければならない場合もあります。
エージェントを介して接続され、Query Analzer 情報を報告する必要があるアプリケーション内で設定されている各ユーザが、エージェントが実行するホストからサーバに接続できるようにする必要があります。このユーザがエージェントに接続し、エージェントがサーバに接続する場合、接続中の識別クライアントホスト名として、エージェントのホストが使用されます。
ユーザ権限を更新するには、GRANT
ステートメントを使用する必要があります。次に例を示します。
mysql> GRANT SELECT,UPDATE,INSERT on database.* to 'user'@'localhost' IDENTIFIED BY 'password';
アプリケーションユーザは、mysql.inventory
テーブルでの SELECT
権限が必要です。このテーブルには、サーバ
UUID が含まれています。これは Query Analyzer
データを MySQL Enterprise Service Manager
に報告するときに必要です。これを有効にするには、GRANT
オプションを使用します。
mysql> GRANT SELECT on mysql.inventory to 'user'@'localhost' IDENTIFIED BY 'password';
通常、アプリケーションを変更する方法が、最も簡単な推奨方法です。たとえば、次の図に示すような一般的な構造の場合、MySQL サーバと直接通信せずに、エージェントと接続するように、クライアントアプリケーションを変更する必要があります。
エージェントを介して通信を行う構造の例を次に示します。
アプリケーション内で Query Analyzer を有効にするには、次のようにします。
MySQL Enterprise Service Manager および MySQL Enterprise Service Agent が設定され、実行中であることを確認します。
インストールされた Agent ディレクトリ内の
etc/mysql-monitor-agent.ini
ファイルの内容を参照して、エージェントの設定を確認します。
クエリは、proxy-backend-addresses
パラメータで指定されたホストに送信されます。エージェントは、proxy-address
パラメータで設定されたホスト名およびポートのサーバにリダイレクトされる接続をリスンします。
proxy-address
パラメータで指定したアドレスで通信するようにアプリケーションを変更します。
また、アプリケーションを直接変更しない場合、IP テーブルやファイヤウォールルールを使用して、元のホスト/ポートのペアをエージェントのポートにクエリをリダイレクトできます。
ログイン権限を変更、または別のログイン権限を指定する必要はありません。エージェントは、提供されたログインおよびパスワードの詳細を変更せずに元の MySQL サーバに渡します。
アプリケーションが通常どおり機能していることを確認します。MySQL サーバとの直接的な通信とエージェントを介した通信に違いはありません。
mysql
クライアントを使用して、エージェントおよびバックエンドサーバに接続する場合、適切なポートを使用してプロキシと通信していることを確認してください。デフォルトでは、localhost
をホスト名として指定すると、mysql
は TCP/IP ソケットではなく、ローカル UNIX
ドメインソケットを使用して接続します。
mysql
で適切なポートを使用させるには、プロトコルタイプを明示的に要求するか、localhost
ではなく IP
アドレスを使用します。たとえば、次の両方のコマンドを使用すると、クライアントは適切なプロトコルを使用して開始されます。
shell> mysql --port=4040 --protocol=tcp shell> mysql --port=4040 --host=127.0.0.1
MySQL サーバインスタンスごとに使用するエージェントは 1 つにすることをお勧めします。エージェントは、クエリを複数の MySQL サーババックエンドに転送できません。
MySQL Server を変更して Query Analyzer を有効にする場合、サーバをシャットダウンし、MySQL 設定ファイルを編集して、MySQL を再起動する必要があります。Agent が元の MySQL TCP/IP ポートでリスンするように、Agent 設定を変更する必要があります。この方法を使用するには、次のようにします。
/etc/my.cnf
または他の MySQL
設定ファイルを編集して、port
設定を現在の値(デフォルトでは
3306)から別の値に変更または追加します。次に例を示します。
port = 3307
MySQL Server をシャットダウンします。
MySQL Server を起動して、実行していることを確認します。
エージェントが元の MySQL ポートで接続をリスンするように、MySQL Enterprise Service Agent 設定を編集します。
proxy-address=:3306 proxy-backend-addresses = 127.0.0.1:3307
MySQL Enterprise Service Agent を停止して再起動します。
これで、元のポートに接続して、MySQL Enterprise Service Agent を介して MySQL サーバに接続できるようになりました。
$ mysql --host=127.0.0.1
個々のクエリをクリックすると、個々のクエリの詳細を示すポップアップウィンドウが表示されます。このポップアップウィンドウの例を次に示します。このウィンドウ内で使用できるタブは、詳細なクエリ情報を設定しているかどうかにより異なります。デフォルトでは、「Summary
Details」ページが常に表示されます。有効にされている場合、「Example
Details」ページも表示できます。このページには、送信されたデータやパラメータなど、特定のクエリに関する詳細情報が表示されます。また、「Example
Explain」ページを有効にすることもできます。このページでは、指定クエリで
EXPLAIN
ステートメントをリモートで実行して、その結果情報を表示できます。
「クエリ情報」タブ:
このテーブルに表示される要約情報のほか、最小時間、最大時間、平均時間、合計時間、標準偏差など、実行に関する詳細な統計情報を参照できます。標準偏差を参照すると、指定クエリの回数の正規分布から外れているクエリ呼び出しを判別できます。
行統計情報は、クエリにより返された行の最大数、最小数、平均数、合計数、標準偏差に関する詳細な情報、および返されたデータの合計サイズと最大サイズを提供します。合計および平均の期間は、「実行時間統計」の下に表示されます。
クエリの詳細ビューには、クエリの 3
種類のビューも表示されます。truncated
バージョンは、クエリの短縮バージョンです。クエリの
full
バージョンは、完全なクエリステートメントです。正規化では、個々のクエリから定数が削除されます。これにより、論理的構造が同じクエリは、同じ基本クエリに識別されます。
クエリの詳細ウィンドウを閉じるには、「
」ボタンをクリックします。指定クエリの識別を簡単にするため、クエリのエイリアスを作成できます。このエイリアスは、「Query Analyzer」テーブルで正規化されたクエリテキストの代わりに使用されます。クエリのエイリアスを作成するには、そのクエリで「
」リンクをクリックします。「クエリ例」タブ:
「クエリ例」タブには、実行時間から求められた、最もパフォーマンスコストがかかったクエリの詳細が表示されます。
実行されたフルクエリとデータのほか、このタブには、指定クエリの実行時間、データ、ユーザ、スレッド ID、クライアントホスト、実行ホストが表示されます。
「EXPLAINクエリ」タブ:
「EXPLAINクエリ」タブでは、EXPLAIN
プレフィックスでクエリを実行してその結果を表示できます。詳細については、EXPLAIN
Syntaxを参照してください。
テーブル上部にあるフォームを使用すると、「Query Analyzer」テーブル内に表示されるクエリをフィルタリングできます。フォームのさまざまなフィールドが、フィルタプロセスのパラメータの指定に使用されます。フィルタを指定すると、「Query Analyzer」テーブル内に示されるすべてのクエリおよび関連する統計情報が、フィルタ設定に基づいて表示されます。たとえば、デフォルトでは、フィルタ設定により 30 分以内に実行されたクエリが表示されます。平均、最大、実行回数など、表示されるすべての統計情報は 30 以内のクエリに関する情報です。
フィルタフィールドを次に示します。
「検索タイプ」、「クエリ検索」。正規化されたクエリのテキスト検索をサポートします。検索タイプには、基本テキスト検索、または正規表現検索のいずれかを指定できます。基本テキスト検索のほか、特定の文字列を含まないクエリを検索することもできます。正規表現検索の場合、正規表現がクエリに一致するか、または一致しないか(非正規表現)を指定できます。正規表現は、標準の
MySQL REGEXP()
関数を使用して構文解析されます。詳細については、Regular Expressionsを参照してください。
検索は、クエリの標準バージョンに対して実行されます。クエリ自体のパラメータ内の特定のテキストまたは値に対して、検索を実行することはできません。
データベース - 特定のデータベース内に実行されたクエリに制限します。データベース一致は、MySQL
データベースから LIKE
検索を使用して実行されます。そのため、複数および単一の文字検索に
%
および _
文字を使用できます。詳細については、Pattern Matchingを参照してください。
「表示タイプ」 - このメニューでは、フィルタリングの時間選択を時間 interval に基づいて実行するか(「時間」および「分」ポップアップを使用して、表示される期間内に記録されたクエリのみが示されます)、期間(開始/終了)に基づいて実行するかを指定できます。
「間隔」モードを使用すると、グラフが更新された時点からの指定期間内のクエリが表示されます。たとえば、30 分を選択した場合、30 分以内にキャプチャされたクエリが表示されます。このとき、表示を 14:00 に更新した場合、13:00 から 14:00 にキャプチャされたクエリが表示されます。「間隔」モードを使用すると、フィルタ選択の期間を最大 23 時間 59 分に制限できます。
「開始/終了」モードを使用すると、特定の日付および時刻の間のクエリを表示できます。このモードを使用すると、特定の期間中に受け取ったクエリのみを表示できます。また、クエリ解析情報を記録している場合、さらに長い期間のクエリ履歴を表示できます。
「表示」-すべての監視対象サーバで実行された同じクエリをまとめて表示するように、「グループ」に基づいて情報を返すか、または「サーバ」に基づいて個々のサーバでクエリを要約するかを指定できます。「サーバ」を選択した場合、テーブルには、サーバを表示する追加のカラムが含まれます。
「クエリタイプ」-クエリをフィルタリングするクエリのタイプを選択できます。「全てl」を選択すると、すべてのクエリが表示されます。選択できる追加クエリのタイプは、SELECT
、INSERT
、UPDATE
およびその他のメイン SQL クエリタイプです。
「上限」-各ページ内に表示されるクエリの数を指定できます。
フィルタパラメータを設定している場合、「
」ボタンをクリックして、「Query Analysis」表示を更新できます。フィールドをデフォルト設定にリセットするには、「 」ボタンをクリックします。Query Analyzer で提供される情報は複雑ですが、アプリケーションに合わせてターゲットを絞り、問題の解決に利用できます。情報は、クエリまたはサーバ、あるいはその両方における問題を検出するために、さまざまな方法で使用できます。Query Analysis インターフェースを最大限利用する方法について、および Query Analyzer システムで表示される情報に基づいてさまざまなクエリや問題を特定する方法についてのヒントを次にいくつか示します。
まず、クエリごとに個々のカラムで提供される情報に注目します。特に、次のカラムでは、クエリやデータベースサーバにおける特定の問題が強調されます。
実行カウント — 実行回数が多い場合、特に、頻繁には実行されないと思われるクエリでは、アプリケーションが簡単なクエリを頻繁に実行しているか、または別の方法でキャッシュに入れられるクエリを複数回実行している可能性があります。この場合、通常の実行率に比べ、短期間で実行回数が大きく増加しているクエリに注意する必要があります。
特定方法: ソート機能を使用して、実行回数によりクエリをソートします。
新規クエリ — 「Query Analyzer」タブに表示される新しいクエリは、特に、他のクエリが数時間または数日表示された後で表示される場合、いくつかの問題を示していることがあります。
実行時間 — 実行時間が長い場合、および平均実行時間と比較して最大実行時間が長い場合、特定のクエリおよび特定のパラメータで問題が発生している可能性があります。
特定方法: ソート機能を使用して、実行回数によりクエリをソートします。
また、フィルタリングおよびソートオプションを使用して、問題が発生している可能性があるクエリに関する特定の情報を取得することもできます。
「Query Analyzer」ページに情報が表示されない、または予想した範囲のクエリが表示されていない場合、確認できるシステムはたくさんあります。
システムが Query Analysis で正しく設定されているか確認するには、次のことをチェックします。
Agentログと MySQL Enterprise Service Manager内のでサーバのステータスをチェックして、エージェントが実行しているか確認します。
各エージェントの設定ファイルをバックアップします。次のことを確認します。
メイン設定ファイル(mysql-monitor-agent.ini
)内の
plugins
パラメータに
proxy
プラグインが含まれている。
plugins=proxy,agent
メイン設定ファイル(mysql-monitor-agent.ini
)内の
agent-item-files
パラメータで、share/mysql-proxy/items/quan.lua
スクリプトが指定されている。
agent-item-files = share/mysql-proxy/items/quan.lua, » share/mysql-proxy/items/items-mysql-monitor.xml
プロキシ設定パラメータで、クエリを送信する
MySQL
サーバが指定されている。たとえば、エージェントを
MySQL
サーバと同じホストで実行する場合、mysql-monitor-agent.ini
ファイルには次の行が含まれています。
proxy-address=:4040 proxy-backend-addresses = 127.0.0.1:3306 proxy-lua-script = share/mysql-proxy/quan.lua
上記の設定は次のことを表しています。
エージェントプロキシは、ポート
4040(proxy-address
)を使用して、現在のマシンでリスンします。
エージェントプロキシは、proxy-backend-addresses
パラメータの設定に従い、受け取ったすべてのクエリをポート
3306
(標準の MySQL
ポート)のホスト 127.0.0.1
に送ります。
完全な設定ファイル(mysql-monitor-agent.ini
)の例を次に示します。この例は、MySQL
バックエンドサーバとして
127.0.0.1
を使用し、monitor
という名前の
MySQL Enterprise Service Manager に報告します。
[mysql-proxy] plugins=proxy,agent agent-mgmt-hostname = http://agent:password@monitor:18080/heartbeat mysqld-instance-dir= etc/instances agent-item-files = share/mysql-proxy/items/quan.lua,share/mysql-proxy/items/items-mysql-monitor.xml proxy-address=:4040 proxy-backend-addresses = 127.0.0.1:3306 proxy-lua-script = share/mysql-proxy/quan.lua agent-uuid = a3113263-4993-4890-8235-cadef9617c4b log-file = mysql-monitor-agent.log pid-file=/opt/mysql/enterprise/agent/mysql-monitor-agent.pid
エージェントプロキシを介してバックエンド MySQL サーバに接続できるか確認します。これを確認するには、MySQL クライアントをチェックします。同じユーザおよびパスワード情報を指定するなど、元のサーバに接続する場合と同じオプションを指定する必要があります。
shell> mysql -h 127.0.0.1 --port 4040 --user=root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 299239 Server version: 5.0.60-log Gentoo Linux mysql-5.0.60-r1 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>
アプリケーションが、クエリ送信時の実際の MySQL ポートではなく、指定されているプロキシポートを使用するように設定されているか確認します。
Query Analyzer がホストで有効にされているか確認します。詳細については、項9.6. 「Query Analyzer の設定」を参照してください。
Query Analyzer データに関連する設定はたくさんあります。Query Analyzer 操作は、「Query Analyzer」タブ内の「Query Analyzer の設定」リンクを使用して、または「設定」タブ内の「Manage Servers」タブにある「 」ボタンを使用して設定できます。いずれの方法を使用しても同じダイアログボックスが表示されます。
いずれの方法でも、選択する設定オプションは、「サーバ」ナビゲーションパネル内で選択された個々のサーバまたはサーバグループに適用されます。
いずれの方法でも使用できる設定オプションは 3 種類あります。
「Query Analyzer を有効にする」。このサーバまたはサーバグループで Query Analyzer を有効にするかどうかを設定します。選択した場合、Query Anayzer が有効になります。無効にするには、チェックボックスの選択を解除します。
Query Analyzer が有効にされている場合、「クエリ例を有効にする」チェックボックスを選択して、「クエリ例」機能を設定できます。このオプションを有効にした場合、クエリをクリックして開かれる「クエリ情報」ウィンドウに追加のタブが表示されます。
「クエリ例を有効にする」。Query Analyzer で、個々のクエリの詳細情報を表示できます。有効にした場合、クエリおよびそのデータアイテム(デフォルト表示される標準フォーム以外)が表示されます。このオプションを有効にすると、フルクエリステートメントが公開されるので、セキュリティ問題が発生することがあります。
「クエリ例」オプションを有効にすると、クエリ要約詳細の追加タブを使用できます。詳細については、項9.2. 「詳細なクエリ情報の取得」を参照してください。
「クエリ例」を有効にした場合、「EXPLAIN例」も有効にできます。このタブを有効にするには、「クエリ例のEXPLAIN を有効にする」チェックボックスを選択します。
「EXPLAIN例を有効にする」。クエリを表示するときに別のタブが表示されます。このタブでは、選択したクエリに対する
MySQL からの EXPLAIN
出力の結果を表示できます。この結果には、フルクエリ、およびクエリがサーバ内でどのように実行されたかが示されます。
このオプションを有効にすると、サーバの実行にオーバーヘッドがかかります。これは、サーバが、実行時間が長いクエリを識別するたびに、EXPLAIN
ステートメントを実行するからです。詳細については、MySQL Enterprise Monitor Frequently Asked Questionsを参照してください。
個々のサーバで Query Analyzer を有効または無効にするには、「設定」ページに移動し、「 」リンクをクリックします。すべてのプロパティを設定するには、変更するサーバの横にある「Query Analyzer の設定」リンクをクリックします。
また、各サーバの「Query Analyzer」カラムには、現在の設定、「オン」または「オフ」、および「例」と「EXPLAIN」機能が有効かどうかが示されます。設定を変更するには、現在のステータスをクリックして、「オン」と「オフ」を切り替えます。
選択したサーバの Query Analyzer
を無効または有効にするには、「設定」ページの「 」ボタンまたは「Enable Query
Analyzer
」ボタンを使用します。これらのボタンを選択するには、使用できるサーバのリストからサーバを
1 台以上選択している必要があります。
選択したオプションを、MySQL Enterprise Service Manager に登録されるすべての新しいサーバのデフォルトとして使用するには、「この設定をすべての新規サーバのデフォルトとする。」チェックボックスを選択します。デフォルトでは、新しいサーバを MySQL Monitor に登録すると、このサーバは、Query Analysis データを提供するように自動的に設定されます。これにより、MySQL Monitor に提供される情報量が増えるので、モニターおよびエージェントのパフォーマンスに影響を及ぼします。