Brian Swan has posted an example of debugging with SQL Server traces you can use in your PHP applications to help figure out what all's happening each time you run a query.
Unfortunately, SQL Profiler (a tool that allows you to easily monitor server activity) is not included as part of SQL Server Express. Fortunately, SQL Profiler is just a nice UI for functionality that is built into SQL Server (including the Express version). So, in this post I'll show you how to create, read from, and write to a trace file using SQL and SQL Server Management Studio (which you can download for free from here).
He breaks the process down into a few steps with sample code and SQL for each:
- Create a trace (with the sp_trace_create stored procedure)
- Set the events to be monitored
- Filter trace data
- Start the trace
- Read trace data (this is where PHP comes in, code included)
With the results you can see things like read time, write time and CPU used for each part of the query making it simple to pick out the offenders.