Getting ColdFusion SQL Statements from SQL Server Trace
Running a SQL Trace in the SQL Server Profiler can be a great way to track down performance problems in your ColdFusion application. However if you have tried to run one, you probably didn't see the actualy SQL queries your ColdFusion application was sending, only things like this:
RPC:Completed exec sp_execute 1,2,4
The reason for this is that ColdFusion's JDBC Driver for SQL Server passes SQL statements through the sp_execute
stored procedure, so you are only seeing the stored procedure call. You need to enable an event that is not enabled by default, the SP:StmtCompleted
event.

When you start your trace click on the Event Selection
tab, and then check Show all events
then find SP:StmtCompleted
under the Stored Procedures
node.
The above was tested on SQL Server 2005, you may have a different UI on previous versions.
Now when you run your trace you should see your SQL Statements in the TextData
column where EventClass
is SP:StmpCompleted
Like this? Follow me ↯
Tweet Follow @pfreitagGetting ColdFusion SQL Statements from SQL Server Trace was first published on June 16, 2008.
If you like reading about sql, sqlserver, profiler, trace, coldfusion, cf, or cfml then you might also like:
- Mastering CFQUERYPARAM
- Order by NULL Values in MySQL, Postgresql and SQL Server
- URL Safe Base64 Encoding / Decoding in CFML
- Using Hashicorp Vault with ColdFusion
- CFML Left and Right Functions can Accept Negative Counts
- Dumping HTTP Servlet Request Attributes and Parameters in CF
- 6 ways to stay connected with other CF developers
- ColdFusion Function Arguments now support Integer
The FuseGuard Web Application Firewall for ColdFusion & CFML is a high performance, customizable engine that blocks various attacks against your ColdFusion applications.