2008年10月5日日曜日

[Zend Framework] Zend_Db_Profiler_Firebugでデータベースをプロファイリングしてみる


Zend Framework1.6には Zend_Db_Profiler_Firebug というちょっと興味深いコンポネントが追加されたようです。

Firebug によるプロファイリング
(http://framework.zend.com/manual/ja)

これは Zend_Db_Profiler を拡張したクラスなのですが、
そもそも Zend_Db_Profiler というのは...

Zend_Db_Profiler を使用すると、クエリの情報を取得することができます。 アダプタが実際に実行したクエリの内容や実行所要時間などが取得でき、 余計なデバッグコードをクラスに追加しなくてもクエリを調べられるようになります。 さらに、条件を指定して特定のクエリだけの情報を取得することもできます。

Zend_Db_Profiler_Firebugは、プロファイルした情報をログに保存したり、echoやprintで出力する代わりに、Firebugのコンソールで監視することができます。

Zend_Db_Profiler_Firebugに必要な環境:
Firefox
Firebug (https://addons.mozilla.org/en-US/firefox/addon/1843)
FirePHP (https://addons.mozilla.org/en-US/firefox/addon/6149)


使用法は非常にシンプルで起動ファイルに次のように書くだけです。
// 起動ファイル

$profiler = new Zend_Db_Profiler_Firebug('All DB Queries');
$profiler->setEnabled(true);

// プロファイラを db アダプタにアタッチします
$db->setProfiler($profiler)

// フロントコントローラをディスパッチします

// モデル、ビューそしてコントローラファイル内で発行されたすべての
// DB クエリのプロファイル結果が Firebug に送信されます

これだけで、全クエリをFirebugで監視することができるようになります。

SELECTクエリだけ調べたいとかDELETE/UPDATEだけ調べたい、という使い方もできます。詳しくはZend_Db_Profilerのマニュアルをご覧ください。

0 件のコメント: