我和我的团队正在经历一些谜团,我们所有的调查都没有结果。我希望 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"))
谢谢!
克里斯