我的存储过程不仅庞大,而且内存密集。为详细报告创建第一个存储过程。第二个存储过程调用第一个存储过程,将信息放入临时表,然后从该临时表中选择信息并对其进行汇总。
现在,第二个存储过程不需要详细存储过程中的所有信息,它只需要其中的一部分。
我们的DBA将此方法称为鲁莽,并提出了其他建议,例如“将其保留在真实的表中,以便每天运行一次”。这实际上不会发生,因为许多用户可以每天多次运行报告和不同的日期范围。他的另一个建议是没有临时表的SUM,但我不确定你如何从一个存储过程中只选择某些字段。
我有两个问题:如何在没有临时表的情况下遵循他的第二个SUM建议,如果无法做到,那么是否有人对使用汇总摘要报告所需数据的最佳方法有任何建议?
这两个存储过程都是针对单独的报告。一个是详细信息,另一个是摘要。最终用户可以针对不同的商店和不同的时间段运行它们。
答案 0 :(得分:1)
为什么不将数据放在视图中并从两个存储过程中点击视图?这将降低两个过程中的复杂性(但将其移至视图中)。
根据您的查询结构,您甚至可以创建一个索引视图,该视图将创建一个持久的数据形式,并允许您使用索引。
答案 1 :(得分:1)
如果在内部SP中选择非常简单 - 尝试@Abe注意到的方法
如果无法在简单视图中显示数据,您有两种方法: