.NET TIPS

SQL Server 2005 Express Editionに発行されたSQL文をトレースするには?

デジタルアドバンテージ 岸本 真二郎
2008/05/22

 SQL Server 2005 Express Editionは、アプリケーション開発時や小規模なアプリケーション向けに無償で利用できる便利なデータベースである。管理ツールも用意されており、一通りの作業は行えるのだがプロファイラ(SQL Server Profiler)が付属していない。そこで本TIPSでは、SQL Server 2005 Express Editionで利用できるオープンソースのプロファイラを紹介しよう。

プロファイラとは?

 プロファイラとは、一般的にはプログラム実行時のさまざまな情報を収集するツールである。SQL Server 2005 Standard Edition以上で提供されているプロファイラ(SQL Server Profiler)は、SQL Serverのインスタンスで発生するイベントを収集して表示する。

 アプリケーション開発の場面では、アプリケーションがSQL Serverに対して実行したクエリ(SQL文)の内容を確認するのに用いることが多いだろう。直接クエリを実行する場合でも、ストアド・プロシージャを実行する場合でも、プロファイラを用いることで、実際にどのようなクエリが実行されたかをトレースできる。クエリの確認以外でも、SQL Serverにログインしたアプリケーション、ユーザーなどを確認することも可能だ。

オープンソースのプロファイラ

 今回紹介するSQL Server 2005 Express Profilerは、Google Codeからダウンロードできる。オフィシャルWebサイトには特にこれといった情報はないのだが、これは「使ってみれば分かる」ということなのだろう。

 SQL Server 2005 Express Profilerを使用するには、上述のサイトから.ZIPファイルをダウンロードして任意の場所に展開するだけで、これといったインストール作業は不要だ。展開すると、いくつかの.DLLファイルとともに「SqlExpressProfiler.exe」という.EXEファイルが見つかるので、それをダブルクリックする。これによりSQL Server 2005 Express Profilerが起動する。

SQL Server 2005 Express ProfilerによるSQL実行のトレース

 SQL Server 2005 Express Profilerが起動すると空白のウィンドウが表示される。ここでツールバーのドキュメント風のアイコン をクリックすると新規のトレースを作成するための[Trace Properties]ダイアログが開く。[Trace Properties]ダイアログでは、次の画面のように、まず[General]タブで接続するデータベースを指定し、次に[Events]タブでトレースを行うイベントを指定する。さらに[Filters]タブでトレース内容を絞り込むフィルタを指定できる。

[Trace Properties]ダイアログの[General]タブでにおけるデータベースの指定

[Trace Properties]ダイアログの[Events]タブでにおけるイベントの指定

 ここで悩むのが、「どのイベントを監視すればいいのか?」という点だろう。開発中のアプリケーションから実行されるクエリ(SQL文)の内容を確認したい場合は、[Events]タブで「SQLStmtStarting」と「SQLStmtCompleted」をチェックしておけばよい。また、[Filters]タブで「ApplicationName」に確認したいアプリケーション名を設定しておくと、余計なイベントを表示しなくて済む。

 以上の設定が完了したら、[Trace Properties]ダイアログの[Run]ボタンをクリックしよう。すると、[Trace Properties]ダイアログが閉じられ、SQL Server 2005 Express Profilerにトレース状況が表示される。次の画面はその例だ。

SQL Server 2005 Express Profilerに表示されるトレースの結果

 [Trace Properties]ダイアログの[Events]タブで指定するイベントについては、MSDNの「SQL Server イベント クラスの参照」を参考にしてほしい。End of Article

カテゴリ:データベース 処理対象:SQL Server 2005

この記事と関連性の高い別の.NET TIPS
SQL Server 2005でネットワーク接続を有効にするには?
[ASP.NET]Express Edition以外のSQL Serverでフォーム認証を利用するには?
手軽にSQL Serverのデータベースをコピーするには?
[ASP.NET]セッション情報をSQL Server上で管理するには?
[ASP.NET]SQL Serverモードのセッション管理で情報を永続化するには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

注目のテーマ

Insider.NET 記事ランキング

本日 月間
ソリューションFLASH