EF Prof

EF Prof

Profiler new feature: Too many joins detection

This is Josh’s feature, since we wrote most of the code for it together. Basically, it recognize a very common performance problem, queries that uses too many joins, such as this one: Which would result in the following warning: Queries with too many joins might be a performance problem. Each join requires the database to perform additional work, and the complexity and cost of the query grows rapidly with each additional join. While relational database are optimized for handling joins, it is often more efficient to perform several separate queries...

posted @ Wednesday, February 24, 2010 12:00 PM | Feedback (15)

Profiler Speculative Feature: Query plans

This isn’t a new feature, because you can’t use it right now, but it is a really nice feature that we are working on, and I couldn’t resist showing it off hot “off the press”, so to speak. Given the following query: SELECT this_.id             AS id7_1_,        this_.title          AS title7_1_,        this_.subtitle       AS subtitle7_1_,        this_.allowscomments AS allowsco4_7_1_,        this_.createdat      AS createdat7_1_,        posts2_.blogid       AS blogid3_,        posts2_.id           AS id3_, ...

posted @ Tuesday, February 23, 2010 10:24 AM | Feedback (13)

Profiler new feature: Integrating with application frameworks

One of the things that makes working with the profiler easier is the fact that it gives you not just information, but information in context. I was working with an app using Rhino Service Bus, and it really bothered me that I couldn’t immediately figure out what was the trigger for a session. When using ASP.Net or WCF, the profiler can show the URL that triggered the request, but when we are not using a url based mechanism, that turns out to be much harder. So I set out to fix that, you can see the results...

posted @ Sunday, February 14, 2010 12:00 PM | Feedback (2)

Say hello to Uber Prof

I got several requests for this, so I am making Uber Prof itself available for purchasing. What is Uber Prof? It is a short hand way of saying: All the OR/M profilers that we make. An Uber Prof license gives you the ability to use: NHibernate Profiler Hibernate Profiler Linq to SQL Profiler Entity Framework Profiler And it will automatically give you the ability to use any additional profilers that we will create. And yes, there is an upgrade path if...

posted @ Monday, February 08, 2010 12:00 PM | Feedback (8)

What happens behind the scenes: NHibernate, Linq to SQL, Entity Framework scenario analysis

One of the things that I began doing since starting to work on multiple OR/M Profilers is to compare how all of them are handling a particular task. This is by no means a comparative analysis, but it is an interesting data point. The scenario in question is loading a blog with all its posts and comments. Let us start with NHibernate: var blogs = s.CreateQuery( @"from Blog b left join fetch b.Posts p left...

posted @ Thursday, February 04, 2010 12:00 PM | Feedback (27)

Profiler New Feature: Side by Side diff

The profiler could do session diffs (showing the difference between executed statements between two sessions) for a while now, but we got some requests for changing it to follow a more traditional source control diff style. This is now done, and it should make it easier to understand the changes between two sessions:

posted @ Tuesday, January 26, 2010 12:00 PM | Feedback (1)

UberProf new feature: Query Plan Cache Misuse

This is a new feature available for NHibernate Profiler*, Linq to SQL Profiler and Entity Profiler. Basically, it detects when the same query is executed with different parameter sizes, which generate different query plan in the query cache. Let us say that we issue two queries, to find users by name. (Note that I am using a syntax that will show you the size of the parameters, to demonstrate the problem). We can do this using the following queries. exec sp_executesql N'SELECT * FROM Users WHERE Username...

posted @ Wednesday, January 13, 2010 12:00 PM | Feedback (21)

ÜberProf new feature: Fully keyboard enabled

For a long time, most of the work in the profiler (NH Prof, HProf, L2S Prof & EF Prof) could be done only with the use of the mouse. That annoyed a bunch of people, but it didn’t really bother me.  Rob fixed this recently, and I cannot believe what kind of a difference it makes. Here are the shortcuts: S Focus on Sessions tab header ...

posted @ Thursday, December 17, 2009 12:00 PM | Feedback (8)

ÜberProf new feature: Programmatic Integration

Well… I am still working done the list of stuff people request for the profiler (NH Prof, HProf, L2S Prof & EF Prof) , and one of the things that popped into the head of the list was wanting to have programmatic access to the profiler output. We aren’t talking about just the XML reports that are available, but to be able to get the data in a way that is easy to work with. Well, here it is: There is a new DLL in the profiler distribution, HibernatingRhinos.Profiler.Integration, where you can find the CaptureProfilerOutput...

posted @ Sunday, December 13, 2009 12:00 PM | Feedback (2)

Entity Framework Profiler is now in public beta

After some time in private beta, the Entity Framework Profiler has now to the public beta stage. For the beta period, I am offering a 30% discount for EF Prof. EF Prof brings the an unparallel level of insight into Entity Framework internals. You can see exactly what sort of actions Entity Framework takes against you database, view the results of queries, correlate queries to the matching lines of code that spawn them and get on the spot guidance when you are violating Entity Framework best practices. Here is the screen shot,...

posted @ Saturday, December 12, 2009 7:30 PM | Feedback (15)

Entity Framework Profiler: The new look

This is hot off the press (well, off of Christopher’s desk, at the very least). If all goes well, we will have it out in public beta shortly.

posted @ Thursday, December 10, 2009 5:29 PM | Feedback (11)

ÜberProf and Continuous Integration

One of the features that keep popping up for ÜberProf is that people want to use that in CI scenarios, usually to be able to programmatically check that they don’t have things like SELECT N+1 popping up, etc. With build 562 of ÜberProf, this is now possible. How does this works? We now have a command line interface for ÜberProf, with the following options: /CmdLineMode[+|-] (short form /C)/File:<string> (short form /F)/ReportFormat:{Xml|Html} (short form...

posted @ Thursday, December 03, 2009 8:11 PM | Feedback (11)