Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
HTML Download (Zip) - 7.2Mb


5.4.1.3 クエリープローブ

query-start および query-done プローブは、特定のクエリーがサーバーによって受け取られ、クエリーが実行され、情報がクライアントに正常に送信されたときにトリガーされます。

query-start(query, connectionid, database, user, host)
query-done(status)
  • query-start: クライアントからクエリー文字列を受け取ったあとトリガーされます。引数は次のとおりです。

    • query: 送信されたクエリーの完全なテキスト。

    • connectionid: クエリーを送信したクライアントの接続 ID。この接続 ID は、クライアントが最初に接続したときに返される接続 ID と、SHOW PROCESSLIST からの出力の Id 値と同じです。

    • database: クエリーが実行されるデータベース名。

    • user: サーバーへの接続に使用されるユーザー名。

    • host: クライアントのホスト名。

  • query-done: クエリーが実行されて、クライアントに情報が返されたときにトリガーされます。このプローブは単一の引数 status を格納し、クエリーが正常に実行されると 0 を返し、エラーが発生した場合は 1 を返します。

次の D スクリプトを使用して、各クエリーの実行時間についての単純なレポートを取得することができます。

#!/usr/sbin/dtrace -s

#pragma D option quiet

dtrace:::BEGIN
{
   printf("%-20s %-20s %-40s %-9s\n", "Who", "Database", "Query", "Time(ms)");
}

mysql*:::query-start
{
   self->query = copyinstr(arg0);
   self->connid = arg1;
   self->db    = copyinstr(arg2);
   self->who   = strjoin(copyinstr(arg3),strjoin("@",copyinstr(arg4)));
   self->querystart = timestamp;
}

mysql*:::query-done
{
   printf("%-20s %-20s %-40s %-9d\n",self->who,self->db,self->query,
          (timestamp - self->querystart) / 1000000);
}

前述のスクリプトを実行すると、クエリーの実行時間についての基本的な概要が理解できるはずです。

shell> ./query.d
Who                  Database             Query                                    Time(ms)
root@localhost       test                 select * from t1 order by i limit 10     0
root@localhost       test                 set global query_cache_size=0            0
root@localhost       test                 select * from t1 order by i limit 10     776
root@localhost       test                 select * from t1 order by i limit 10     773
root@localhost       test                 select * from t1 order by i desc limit 10 795

User Comments
User comments in this section are, as the name implies, provided by MySQL users. The MySQL documentation team is not responsible for, nor do they endorse, any of the information provided here.
Sign Up Login You must be logged in to post a comment.