ORM Profiler v1.5 has been released with support for Entity Framework 6 and real time analysis when a number of connections or commands exceeds a given threshold. It also provides an analysis when the transaction time exceeds a given threshold.
The latest build also performs real time analysis for the currently available features such as when the database time of command exceeds the scheduled parameters, during the occurance of an exception, when the resultset is large and during the execution of a massive SQL statement. Moreover, it also performs real time test when there are too many commands per usage period and when the .NET consume time of commands exceeds a given threshold.
ORM Profiler v1.5 includes support for Resultset Retrieval in-client and async and make use of a quick connection open for plan retrieval. It also provides an ability for the settings to persist on to the disk. Moreover, better time aggregation in hierarchical views is now aggregated to the complete tree of nodes instead of just its direct parent.
InfoQ had a chat with Frans Bouma to know more about ORM Profiler v1.5
InfoQ: How does ORM Profiler benefit developers?
ORM Profiler gives insight in what queries are actually executed on a database by the user data-access code, how long these queries take, how large the resultsets are and for example how long it took to consume the resultsets. It also analyzes ADO.NET usage patterns and what queries are used so it can raise an alert if e.g. a lot of queries are executed in a typical SELECT N+1 fashion or e.g. a query results a tremendous amount of rows.
Without deep analysis of what the ORM/Data-access code is doing with the database, an application likely will perform below average and won't scale well when usage increases over time. With the information provided by ORM Profiler, the developer can go back to the code where queries which raised alerts are originating from and fix the code, based on the suggestions given in the alerts.
InfoQ: Does ORM Profiler improve productivity?
ORM Profiler is like all other profilers a measurement tool which shows what part of an application is the actual bottleneck, what part performs poorly, so this is after the code has already been written. It doesn't help developer write code more quickly, but it does help deliver better software to clients because the developer knows how the code shipped to the customer behaves and that it was thouroughly analyzed.
Of course, a developer who made a mistake that was picked up by ORM Profiler will likely not make the same mistake again because s/he learned what the effects/results are of a given piece of code.
InfoQ: Can you share the future roadmap of ORM Profiler?
We put most of the features we wanted to add to ORM Profiler in v1.5. We haven't yet decided what features we'll include next.