我有一个报告 Web 应用程序,它根据在一系列嵌套 sql 视图(3 级深)中完成的聚合绘制信息。最后一个嵌套视图是从实体框架代码中的存储过程调用的。由于它难以获取数据并超时,因此性能损失已经开始产生影响:
在 Sql profiler 中有 360,000+ 读取和 CPU @ 28313。此外,我什至无法在 SQL 中打开第三级视图而不会超时。
第一个视图只是从几个表和聚合中收集数据。第二个对这些数据执行计算,例如日期差异、时区调整和平均值。第三个完成这些计算并提供所需数据的摘要。第三个视图是我查询的那个。
一般来说,解开嵌套视图的好策略是什么?具体来说,如果您有需要在 SQL Server 中完成的计算,但只能在将数据组合到某个级别后才能完成,那么有什么比嵌套视图更好的策略呢?
感谢您的任何帮助,您可以提供!