1

如果所有 SQL 都在做 SELECT,那么使用视图与 SPROC 是否有优势。从我的角度来看,它纯粹是组织性的,但我想知道当 SPROC 所做的只是 SELECT 并且没有写入数据库时​​,是否有充分的理由使用视图。我在 Sql Server 2008 上,但这可能适用于其他 SQL Server 产品

4

2 回答 2

3

视图旨在抽象出基础表的详细信息并为数据提供一个窗口,以您希望它出现的方式。

存储过程实现特定的任务,并且可以选择在任务执行期间使用将使用的参数。

如果您想通过从用户那里获取参数来运行特定任务,那么您可以创建一个存储过程。

如果您只想以给定的方式公开数据并在需要时将进一步的过滤留给用户,您可以创建一个视图。

于 2012-09-12T18:10:11.610 回答
2

除了为特定角色封装特定数据的安全优势之外,还有能够在视图上创建索引的优势。

以下是一些特定的性能优势,来自 MSDN 链接:

  • 聚合可以预先计算并存储在索引中,以最大限度地减少查询执行期间的昂贵计算。
  • 可以预先加入表并存储结果数据集。
  • 可以存储连接或聚合的组合。
于 2012-09-12T18:10:15.747 回答