SQL Server Profilerでイベントを収集していて、TextDataにクエリが見えるイベントが2つあることに気づいたので違いを調べてみました。
で、こんな感じの結論を得ました。
RPC:Complated
ストアド実行のログ。
プログラム側でパラメタライズドクエリを実行した際には、このイベントのTextDataにこんな感じでログが残ります。
exec sp_executesql N’SELECT * FROM HOGE WHERE XXX=@XXX’, N’@XXX int’, @XXX=100
SQL:BatchCompleted
普通にクエリを実行した場合のログ。
プログラム側でパラメタライズドクエリを使わなかった場合には、このイベントのTextDataにクエリのログが残ります。
要はパラメタライズドクエリはストアドとして実行されているようですので、システム開発しているときにクエリのログをとる際には、両方ともとっておきましょうってことです。
この事項はSQLServer2005にて確認しました。