【发布时间】:2012-06-11 16:06:11
【问题描述】:
如果我搜索不够彻底,请鞭打我.....
我想知道什么对性能更好:
使用 SQL 收集、聚合和排序我的数据(数据集中的 WHERE、Group by、Order By 语句) 或者 只需收集“裸”数据并在报告中进行分组、排序和过滤。 (在报告中过滤数据集、参数和聚合)
使用存储过程对性能有好处吗?
您好,
亨利
【问题讨论】:
标签: sql-server-2008 ssrs-2008 reporting-services
如果我搜索不够彻底,请鞭打我.....
我想知道什么对性能更好:
使用 SQL 收集、聚合和排序我的数据(数据集中的 WHERE、Group by、Order By 语句) 或者 只需收集“裸”数据并在报告中进行分组、排序和过滤。 (在报告中过滤数据集、参数和聚合)
使用存储过程对性能有好处吗?
您好,
亨利
【问题讨论】:
标签: sql-server-2008 ssrs-2008 reporting-services
嗯,SSRS 是一个显示结果的工具,它经过优化可以做到这一点,虽然它可以执行聚合和过滤器以及更多的事情,但这并不意味着它是他的主要目标,所以它没有优化到去做。当您对数据集执行聚合、过滤和数据操作时,您正在为此使用数据库引擎,它为此进行了优化,因此您很可能通过这种方式获得更好的性能。至于存储过程或纯 SQL,两者都没有内在的性能优势(我更喜欢纯 SQL,只是因为它给了我更多的灵活性)。
【讨论】:
在性能方面,SQL Server 针对这类事情进行了优化;
在某些情况下,存储过程可以显着提高性能,因为它预编译查询计划...在这种情况下,除非经常调用报告,否则我不知道您是否会注意到差异。不过,我更愿意将我的 SQL 保留在报告之外。
【讨论】: