0

我和我的团队正在经历一些谜团,我们所有的调查都没有结果。我希望 SO 上的某个人可以为我们提供更多探索的途径。

我有一个执行查询并显示结果的网站。当这个网站在我的开发机器或测试服务器上时,它非常缓慢,以至于它经常超时。

当我将网站发布到数据库服务器时,查询执行时间很快。

查询的有效负载只有大约 10-15k,因此结果集的大小不应该像这样影响性能。

我们的网络管理员表示数据库服务器和测试服务器在公司局域网上,它可以对局域网上的所有内容进行广泛的访问。

有没有人对可能影响查询性能的因素有任何建议?我们都有些不知所措。我可以很好地打开连接,但是一旦我尝试用我的适配器填充数据表,事情就会停止:

using (SqlConnection cnSource = new SqlConnection(ConfigurationManager.ConnectionStrings["cn"].ToString()))
        {
            cnSource.Open();                

            using (SqlDataAdapter adapter = new SqlDataAdapter(sql, cnSource))
            {
                adapter.Fill(records); /*** THIS LINE IS SLOW REMOTELY ***/
            }
  • 编辑:大约 100 条左右的记录,4 列

  • 查询,fwiw,是:

查询是:

SELECT ef.Name AS EventFrame, ef.StartTime, efa.Name AS EventFrameAttribute, 
    CAST(efs.Value as String) as AttrValue 
FROM [Reporting].[EventFrame].[EventFrame] ef
    INNER JOIN [Reporting].[EventFrame].[EventFrameAttribute] efa ON efa.EventFrameID = ef.ID 
    INNER JOIN [Reporting].[Data].[EventFrameSnapshot] efs ON efs.EventFrameAttributeID = efa.ID
WHERE ef.StartTime >= N'{0}'
    AND (efa.Name =N'ProductCategory' or efa.Name =N'ActualCases' or efa.Name=N'Target') 
    AND ef.EventFrameTemplateID=N'9b616c78-7ad3-47a1-a5ae-26d299beb50c'
ORDER BY ef.Name, ef.StartTime, ef.EndTime, efa.Path, efa.Name", 
             start.ToString(new CultureInfo("en-CA"))

谢谢!

克里斯

4

1 回答 1

0

尝试在连接字符串中使用不同的服务器地址。我有一个例子,当引用为(本地)时,sql 语句执行非常慢,但在我使用 IP 地址 127.0.0.1 时执行正常

于 2013-02-20T16:29:03.480 回答