MySQL Server の DTrace プローブは、MySQL 内でのクエリーの実行と、その処理中に使用されるシステムのさまざまな領域についての情報を提供するように設計されています。プローブの編成およびトリガーが持つ意味として、クエリー全体の実行は 1 レベルのプローブ (query-start
およびquery-done
) でモニターできるが、ほかのプローブをモニターすることによって、使用されるロック、ソート方法、さらに行ごとおよびストレージエンジンレベルの実行情報といった観点から、クエリーの実行に関するさらに詳細な情報を連続的に取得できるということがあります。
DTrace プローブは、クライアントからの接続のポイント、クエリーの実行、行レベルの操作、およびバックアウト操作といったクエリー全体のプロセスを追うことができるように編成されています。次の図に示すように、プローブは、典型的なクライアントの接続、実行、接続解除のシーケンス中に特定のシーケンス内で起動されるものと考えることができます。
グローバル情報は、さまざまなレベルで DTrace プローブへの引数内で提供されます。グローバル情報とは、接続 ID、ユーザーとホスト、および関係する場合はクエリー文字列で、これらの情報は、キーレベル (connection-start
、command-start
、query-start
、およびquery-exec-start
) で提供されます。プローブが深くなるにつれて、個々の実行にのみ関心を持つか (行レベルのプローブは、データベースおよびテーブル名のみについての情報を提供します)、または行レベルのプローブと概念上の親プローブを組み合わせて特定のクエリーについての情報を提供することが想定されます。この例は、各プローブの形式および引数が提示されるときに提供されます。
MySQL 5.6 では、これらのプラットフォーム上での DTrace プローブについてのサポートが含まれます。
SPARC、x86、および x86_64 プラットフォーム上での Solaris 10 Update 5 (Solaris 5/08)
OS X 10.4 以上
UEK カーネルを持つ Oracle Linux 6 以上 (MySQL 5.6.20 以降)
これらのプラットフォーム上ではプローブの有効化は自動的であるはずです。ビルド中にプローブを明示的に有効または無効にするには、CMakeに-DENABLE_DTRACE=1
または-DENABLE_DTRACE=0
オプションを使用してください。
Solaris 以外のプラットフォームに DTrace サポートが含まれている場合、そのプラットフォーム上でのmysqldのビルドには、DTrace サポートが含まれます。
追加のリソース
DTrace および DTrace スクリプトの作成の詳細は、『DTrace ユーザーガイド』をお読みください。
DTrace の概要については、MySQL Dev Zone の記事「Getting started with DTracing MySQL」を参照してください。