【发布时间】:2016-11-10 15:09:39
【问题描述】:
我有一个仪表板,其中显示使用 5 个单独的 SELECT count (*) 查询计算的 5 个实时总计。这些结果被插入到页面中
Using rdr As SqlDataReader = db.ExecDataReader(qry1)
rdr.Read()
qa1.InnerText = rdr(rdr.GetName(0))
End Using
Using rdr As SqlDataReader = db.ExecDataReader(qry2)
rdr.Read()
qa2.InnerText = rdr(rdr.GetName(0))
End Using
有什么方法可以减少加载时间?我尝试使用 UNION 加入所有查询,并且在 SQL SMS 中它需要几秒钟的时间,但我不知道如何从结果中提取每个“行”。
也就是说,在 Server Management Studio 中仍然需要 12 秒,这对于仪表板来说仍然是不可取的。我的双手被我们的基础设施束缚了吗?
【问题讨论】:
-
好吧,您已经确定了响应时间缓慢的原因 - 查询成本很高。您的首要任务是尝试优化这些查询 - 检查缺失的索引等。考虑到这一点,目前的问题太模糊,无法提供帮助。
-
创建一个包含所有 5 个查询的 usp,此 usp 将返回您的数据集,它是 5 个表的集合,然后您可以使用这些表进行进一步处理。
-
您需要 100% 准确的结果吗?您的表格是更新还是仅插入?你使用 LOB 吗?
标签: sql asp.net sql-server performance