Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Miniprofiler: site is inexplicably fast

We installed miniprofiler. It has been an edifying experience, but now we see that our database queries run 3x as fast with the profiler enabled as with it disabled.

The only code we changed in our app was to add the profiledDbConnection:

public static DbConnection GetOpenConnection(string connectionString)
{
    var cnn = new System.Data.SqlClient.SqlConnection(connectionString);  
    // wrap the connection with a profiling connection that tracks timings 
    return MvcMiniProfiler.Data.ProfiledDbConnection.Get(cnn, MiniProfiler.Current);
}

Linq2Sql is suddenly...fast.

I'm not complaining, but why is this happening?

like image 690
Code Silverback Avatar asked Jun 27 '11 22:06

Code Silverback


1 Answers

What do you mean by 'database queries run 3x faster'?

  1. If you run SQL Profiler - do you see that the db execution time is 3 times lower?
  2. The time to execute a high level method in your code that eventually queries database is 3 time lower?

If it is case 1 than the difference will be in the SQL generated - compare both statements. If it is case 2 than run a C# profiler (Ants, dotTrace) and compare execution time of all the methods.

Difference of this magnitude will be related to a totally different path of execution - maybe you're not doing a heavy loop or you're getting data from cache.

First of all you can verify if you are hitting database at all and the number of queries is exactly the same.

like image 90
Jakub Konecki Avatar answered Nov 14 '22 02:11

Jakub Konecki