MySQL Enterprise Plugin for Connector/Net は、Connector/Net を使用しているすべてのアプリケーション (スタンドアロンアプリケーションと Web ベースアプリケーションの両方を含む) からの Query Analyzer データを提供します。クエリーの情報が直接 MySQL Enterprise Service Managerへ送られます。 MySQL Enterprise Plugin for Connector/Net をインストールすれば、使用しているアプリケーションコードを修正することなく、アプリケーションのクエリ解析が使用できるようになります。
表3.5 Query Analyzer Connector/Net の概要
| Feature | C/NET |
|---|---|
| Uses Aggregator | No |
| Uses Proxy | No |
| Supports EXPLAIN | Yes |
必要条件
Connector/Net version 6.2.3 以降を使用している必要があります。
使用しているアプリケーションがすでに
Mysql.data.dll
を使用しており、必要なライブラリで構築されていなければいけません。
リリースされている Connector/Net
のビルドを使用している場合、接続文字列内に
logging=true
オプションを含める必要があります。
インストール
MySQL Enterprise Plugin for Connector/Net
パッケージをダウンロードします。適切な Zip
ツールを使用してパッケージを抽出してから、使用しているコンパイル済みアプリケーションと同じディレクトリに、プラグインライブラリ
MySql.MonitorPlugin.dll を配置します。
構成
プロファイルするアプリケーションに
app.config
アプリケーション設定ファイルがない場合は、このファイルを作成する必要があります。
Query Analyzer
機能を有効にするには、app.config
ファイルの System.Diagnostics
セクションに追跡リスナーを登録する必要があります。設定ファイルの例を次に示します。
<system.diagnostics>
<sources>
<source name="mysql" switchName="SourceSwitch" switchType="System.Diagnostics.SourceSwitch">
<listeners>
<add name="EMTrace" type="MySql.EMTrace.EMTraceListener, MySql.MonitorPlugin"
initializeData=""
Host="SERVERHOST:SERVERPORT"
PostInterval="POSTINTERVAL"
UserId="AGENTUSERID"
Password="AGENTPASSWORD"/>
</listeners>
</source>
</sources>
<switches>
<add name="SourceSwitch" value="All"/>
</switches>
</system.diagnostics>
<system.data>
<DbProviderFactories>
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient\
.MySqlClientFactory, MySql.Data, Version=6.2.1.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
構成内で、次のパラメータの値を設定する必要があります。
ホスト
Query Analyzer データが送信される &merlin_server のホスト名とポート番号 (コロンで区切る)。
PostInterval
使用しているアプリケーションから MySQL Enterprise Service Manager へ、収集した Query Analyzer 情報を送信する間隔 (秒単位)。この値は慎重に選択するようにしてください。長すぎると、クエリが Query Analyzer に表示されるまでに時間がかかることがあります。
UserId
エージェント情報を送信する権限を持つ MySQL Enterprise Service Manager 内のユーザのユーザ名。
パスワード
エージェント情報を送信する権限を持つ MySQL Enterprise Service Manager 内のユーザのパスワード。
クエリの詳細情報を取得し、MySQL Enterprise Monitor に表示したい場合は、Connector/Net使用アドバイザを有効にする必要があります。詳細情報の例には、クエリにインデックスを不使用、または結果セットの全てのカラムにアクセスしないなどがあります。
使用アドバイザを有効にするには、アプリケーション内の接続文字列に、usage
advisor=trueを追加する必要があります。このオプションを有効にすると、自動的にConnector/Net内のロギングが有効になります。詳細については、Connector/Net Connection String Options Referenceを参照してください。
Visual Studio
での開発でアプリケーションを実行している間、「出力」ウィンドウには大量の出力が表示されます。アプリケーションをスタンドアロンで実行していて、追跡出力を監視する場合、設定ファイルに追加のリスナーを設定する必要があります。
これを行うには、app.config
ファイルの system.diagnostics
セクション内に次の内容を追加します。
<trace autoflush="false" indentsize="4">
<listeners>
<add name="consoleListener" type="System.Diagnostics.ConsoleTraceListener" />
</listeners>
</trace>
