ORM Profilerのバージョン1.5がリリースされた。このバージョンはEntity Framework 6をサポートし、コネクション数やコマンド数があらかじめ決めておいたしきい値を超えたときにリアルタイムで分析する機能を持っている。また、トランザクション時間がしきい値を超えた時にもリアルタイム分析ができる。
また、データベースこのコマンド時間がスケジュール化されたパラメータを超えたときや、例外の発生、結果セットが大きいときや巨大なSQLの実行などもリアルタイムで分析できる。さらに、一定の期間のコマンドの量が多すぎるときや.NETがしきい値を超えるコマンド時間を超えた場合にはリアルタイムのテストもできる。
ORM Profilerバージョン1.5は非同期で結果セットを復元する機能と高速コネクションオープンをサポートしている。また、設定を永続化してディスクに残しておくこともできる。さらに、階層ビューでの時間集計も完全なツリーノードを集計できるようになった。
InfoQはORM Profilerバージョン1.5についてFrans Bouma氏に話を聞いた。
InfoQ: ORM Profilerはどのような利点がありますか。
ORM Profilerを使えば、実際はどのようなクエリがデータベースに発行されているのかを確認できます。クエリがどのくらい時間がかかっているか、結果セットの大きさや結果セットを消費するのにかかる時間などもわかります。ADO.NETの利用パターンを分析して、例えば、SELECT N+1の問い合わせで大量のSQLが発行されていたり、問い合わせの結果が巨大だった場合にアラートをあげられるようにします。
ORM/データベースアクセスのコードが何をしているかを深く分析しなければ、アプリケーションは平均以下の性能しかでませんし、利用頻度が向上してもスケールできません。ORM Profilerが提供する情報を利用することで、開発者はアラートがあがったクエリを見つけ、アラートの情報を元にコードを修正することができます。
InfoQ: ORM Profilerは生産性を向上しますか。
ORM Profilerはほかのプロファイラツールと同じで、アプリケーションのどこにボトルネックがあるか、どこの性能が悪いかを見つけることができます。開発者のコードを書くスピードを向上させるツールではありませんが、優れたソフトウエアを提供するのを手助けします。開発者が顧客に提供したコードがどのように振る舞っているかを知ることができるからです。
また、ORM Profilerにミスを指摘された開発者は同じミスをしなくなるでしょう。コードから学ぶことができるからです。
InfoQ: ORM Profilerのこれからのロードマップを教えてください。
今回のバージョンで実装したいと思っていた機能をほぼすべて盛り込むことができました。なので、次のバージョンで何を実現するかはまだ決めていません。