Recommended Tool: Express Profiler for SQL Server Databases

NOTE:  As I was writing up this post I discovered the news that SQL Profiler is deprecated as of the release of SQL Server 2016.  If this also affects the underlying SQL Server tracing APIs, then this news may affect the long-term future of the Express Profiler.  For now, however, it is a tool that I recommend.

Express Profiler is a simple Open Source alternative to the SQL Profiler that ships with the full SQL Server Management Studio.  This is particularly useful when working with SQL Server Express databases, as the Express version of the Management Studio does NOT include the SQL Profiler.

Usage of the Express Profiler should be self-explanatory to anyone familiar with the SQL Profiler.

Here are some details about Express Profiler from the project page:

  • ExpressProfiler (aka SqlExpress Profiler) is a simple and fast replacement for SQL Server Profiler with basic GUI
  • Can be used with both Express and non-Express editions of SQL Server 2005/2008/2008r2/2012/2014 (including LocalDB)
  • Tracing of basic set of events (Batch/RPC/SP:Stmt Starting/Completed, Audit login/logout, User error messages, Blocked Process report) and columns (Event Class, Text Data,Login, CPU, Reads, Writes, Duration, SPID, Start/End time, Database/Object/Application name) – both selectable
  • Filters on most data columns
  • Copy all/selected event rows to clipboard in form of XML
  • Find in "Text data" column
  • Export data in Excel’s clipboard format

While I have found Express Profiler to be a good and useful tool, it is not as fully-featured as the SQL Profiler.  Here are some key "missing" features in Express Profiler:

  • No way to load a saved trace output, although that feature is on the roadmap for the tool.
  • No way to save trace output directly to a database table.
  • Fewer columns can be included in the trace output, and many fewer events can be traced.  In my experience, however, the columns and events that I find myself using in most cases are all available.
  • As there are fewer columns in the output, there are fewer columns on which to filter.  Again, the most common/useful columns and events are covered.
  • No way to create trace templates for use with future traces.

Despite these limitations, I recommend this tool for situations where the full SQL Profiler is not available.