存储过程或基于视图的报告更快

时间:2011-07-31 11:18:42

标签: sql-server-2008

我想制作一个rdlc报告,该报告使用基于inputdate标准的连接从3-4个表中获取结果。我想知道哪个更好作为后端,一个视图或存储过程来更快地获得结果,并且因为我期望获得10000-30000个记录的结果。我的数据库是SQL Server 2008.请帮忙!

由于

3 个答案:

答案 0 :(得分:1)

如果没有更多细节,那么差异很小或没有差异。

如果查询可以表达为简单视图,那么就应该这样做。

更有可能影响查询速度的是您已有的索引。

答案 1 :(得分:1)

我不确定为什么人们认为他们的选择是视图或存储过程。

视图有很多用途。如果您对不同的报告使用相同的基本查询,或者想要简化模式,实现某种类型的安全性等,那么视图可能有意义。视图是 NOT 但是出于性能原因而实现(让我们将索引视图保留一段时间)。标准视图永远不会加速查询,它只是使引用视图更方便,而不是重复构成视图的所有连接等。

您的报告应该调用存储过程 - 这会模块化查询代码,并提供修改代码的中心位置。该存储过程是否引用视图是一个不同的问题。

答案 2 :(得分:0)

视图在查询上添加了一个抽象层,并且未进行预优化。因此,如果您只是运行基础查询,您将获得比使用视图更好的性能。