A little while ago, I mentioned the core part of the profiling tool we use at stackexchange – our mini-profiler. Well, I’m delighted to say that with the input from Jarrod and Sam this tool has been evolving at an alarming rate, and has now gained:
- full integration with our bespoke SQL profiler, which is now also included
- basically, this is a custom ADO.NET DbConnection that you wrap around your existing connection, and it adds logging
- an awesome UI (rather than html comments), including a much clearer timeline
- full support for AJAX activity
- some very basic highlighting of duplicated queries, etc
- webform support
- and a ton of other features and enhancements
To illustrate with Jarrod’s image from the project page:
The custom connection has been exercised extensively with dapper-dot-net, LINQ-to-SQL and direct ADO.NET, but should also work with Entity Framework (via ObjectContextUtils
, provided) and hopefully any other DB frameworks built on top of ADO.NET.
We use it constantly. It is perhaps our primary tool in both understanding problems and just keeping a constant eye on the system while we use it – since this is running (for our developers) constantly, 24×7.
All too often such fine-grain profiling is just “there’s a problem, ask a DBA to attach a profiler to the production server for 2 minutes while I validate something”.
Enjoy.