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