【发布时间】:2012-02-04 15:39:27
【问题描述】:
我有一个存储过程,它不仅很大,而且非常占用内存。第一个存储过程是为详细报告创建的。第二个存储过程调用第一个存储过程,将信息放入临时表中,然后从该临时表中选择信息并进行汇总。
现在,第二个存储过程不需要详细存储过程中的所有信息,它只需要其中的一部分。
我们的 DBA 称这种方法是鲁莽的,并提出了其他建议,例如“将其保留在真实表中,以便每天运行一次”。这实际上不会发生,因为许多用户每天可以针对不同的日期范围多次运行报告。他的另一个建议是在没有临时表的情况下进行 SUM,但我不确定您如何从一个存储过程中仅选择某些字段。
我有两个问题:如果没有临时表,我将如何遵循他对 SUM 的第二个建议,如果无法做到,是否有人对用于汇总摘要报告所需数据的最佳方法有任何建议?
这两个存储过程都用于单独的报告。一份是详细报告,另一份报告是摘要。最终用户可以为不同的商店和不同的时间段运行它们。
【问题讨论】:
标签: sql sql-server sql-server-2008 stored-procedures