了解迷你探查器DUPLICATE读卡器

时间:2012-05-14 23:20:00

标签: asp.net sql optimization dapper mvc-mini-profiler

我有一个asp .net网站,最近实施了迷你探查器来检测我的应用程序。我能够启动并运行,我将我的连接包裹起来(我正在使用dapper),如下所示:

  public class DapperManager: IExecuteQuery, IDisposable
  {
      private readonly IDbConnection _connection;

      public IDbConnection Connection
      {
          get { return _connection; }
      }

      public DapperManager(string cadenaConexion)
      {

        _connection = new StackExchange.Profiling.Data.ProfiledDbConnection(new
         SqlConnection(cadenaConexion), MiniProfiler.Current);
        _connection.Open();
      }

      public void Dispose()
      {
       _connection.Close();
       _connection.Dispose();
      }
   }

我在类库中有这个类说类型,然后我有另一个类库来执行数据库操作,并执行以下操作:

   class SomeClass
   {
     public string GetSomethingById(int id)
    {
        var dapper = new  Types.DapperManager(Properties.Settings.Default.SomeConnectionString);

        var thing = dapper.Connection.Query<string>(@"SELECT thing 
                                                       FROM somewhere
                                                       WHERE id = @id", id).Single();

        dapper.Dispose();

        return thing;
    }
   }

然后在网站上我们有类似的东西

   protected void Page_Load(object sender, EventArgs e)
   {
     var profiler = MiniProfiler.Current; 
     try
     {
        var id = GetFooId();

        if (!IsPostBack)
        {
           using (profiler.Step("Get thing"))
           {
              var someClass = new SomeClass();
              var something = someClass.GetSomethingById(id);
              // do stuff
           }
        }
       }
     }

现在,当我运行页面时,我在sql上获得了几个DUPLICATE Reader。我仍然不明白这意味着什么或我如何解决它,或者如果它是我编码它的方式的问题。我在全球的asax中开始并完成了de profiler。

我真的很感激有关此事的任何启示。我是仪器和应用程序分析的新手。我为任何错过的拼写道歉。

我刚刚编写的示例代码,但它正是我正在做的事情。

提前致谢。

0 个答案:

没有答案