MS SQL查询挂起诊断

时间:2014-12-17 17:18:54

标签: c# sql-server

在asp .net mvc应用程序中运行SQL Query。但是挂在工作服务器上。

  1. 在开发者PC上的MSSMS中运行sql - 确定时间< 1秒
  2. 在开发者PC上的IIS中运行sql - 确定
  3. 在工作PC上的MSSMS中运行sql - 确定时间< 1秒
  4. 在工作PC上的IIS中运行sql - IIS超时停止AppPool
  5. 我添加登录代码,全部挂在SqlDataAdapter(cmd).Fill(...)

    我尝试cmd.ExecuteNonQuery()但也挂起

    有哪些工具(方法)用于诊断SQL Query在IIS处挂起的原因?

    C#代码

    using(var con = new SqlConnection(ConfigurationManager.ConnectionStrings["Connection"].ConnectionString))
    {
        con.Open();
    
        using (SqlCommand cmd = new SqlCommand(String.Empty, con))
        {
            SqlDataAdapter da;
    
            cmd.CommandTimeout = 360;
            cmd.Parameters.Add("@START", SqlDbType.DateTime).Value = start.Date;
            cmd.Parameters.Add("@END", SqlDbType.DateTime).Value = end.Date.AddDays(1).AddMilliseconds(-1);
            cmd.Parameters.Add("@UID", SqlDbType.UniqueIdentifier).Value = Membership.GetUser().ProviderUserKey;
    
            cmd.CommandText = "LONG SQL QUERY";
            //Hang
            //cmd.ExecuteNonQuery();
            da = new SqlDataAdapter(cmd);
            //Hang
            da.Fill(ds.Tables["Data"]);
        }
    }        
    

    P.S。 (1)非常有趣

    在sql中有过滤器

    WHERE
        TIN.TransitType = 1
        AND TIN.Time >= @START 
        AND TIN.Time <= @END 
    
    1. 如果评论 AND TIN.Time&gt; = @START 查询开始运行良好
    2. 我使用ExpressProfiler,并评论 AND TIN.Time&gt; = @START 我在个人资料中看到了查询。如果未注释 - 在ExpressProfiler中没有查询

0 个答案:

没有答案