我想做一个rdlc报告,根据inputdate标准使用joins从3-4个表中获取结果。我想知道哪个更好作为后端,视图或存储过程,以获得更快的结果和性能增益,因为我期望10000-30000条记录的结果。我的数据库是SQL Server 2008。请帮帮我!
谢谢
发布于 2011-07-31 19:20:39
如果没有更多的细节,就不会有什么不同。
如果查询可以表示为一个简单的视图,那么您就应该这样做。
更有可能影响查询速度的是您已有的索引。
发布于 2011-07-31 23:14:09
我不知道为什么人们认为他们的选择是视图或存储过程。
视图有多种用途。如果您对不同的报表使用相同的基本查询,或者想要简化模式、实现某种类型的安全性等,那么视图可能是有意义的。然而,由于性能原因,视图并未实现(让我们暂时不讨论索引视图)。标准视图永远不会加快查询速度,它只是使引用视图比重复组成视图的所有连接等更方便。
您的报表应该调用一个存储过程-这会模块化查询代码,并提供一个修改代码的中心位置。该存储过程是否引用视图是另一个问题。
发布于 2011-07-31 23:58:57
视图在查询上又增加了一层抽象层,并且没有预先优化。因此,如果您只运行底层查询,您将获得比使用视图更好的性能。
https://stackoverflow.com/questions/6889127
复制相似问题