2013-02-19 61 views
0

我和我的团队正在经历一些谜团,我们所有的调查结果都是零。我希望SO上的某个人能为我们提供额外的探索途径。从远程网站缓慢执行的SQL Server查询

我有一个网站,执行查询并显示结果。当这个网站在我的开发机器或测试服务器上时,它的速度极慢,甚至超过它。

当我发布网站的db服务器时,查询执行时间很快。

查询的有效载荷只有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")) 

谢谢!

Chris

+0

有多少行被返回? – msmucker0527 2013-02-19 15:56:43

+0

显示您正在使用的查询来获取数据... – Pandian 2013-02-19 15:58:12

+3

您是否在数据库服务器上放置了跟踪以确定它是否快速执行查询?如果您通过桌面上的SSMS执行查询会怎么样? IOW,你做了什么来隔离链条的各个元素? – alroc 2013-02-19 16:07:05

回答

0

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

+0

不错的建议,不幸的是,在给它一个旋转之后,我们仍然表现得很慢。 – 2013-02-22 15:31:37