使用存储过程而不是视图有啥优势吗?
Posted
技术标签:
【中文标题】使用存储过程而不是视图有啥优势吗?【英文标题】:Any advantage using stored proc over a view?使用存储过程而不是视图有什么优势吗? 【发布时间】:2011-02-15 09:49:13 【问题描述】:我有一个执行相当复杂的 SELECT 语句的存储过程。存储过程接受查询中使用的参数:
ALTER PROCEDURE [dbo].[GetConnections]
@equipmentId int,
@equipmentPortNum int
AS
SELECT ..SELECT QUERY HERE..
END
我正在考虑将其更改为视图,并在调用时过滤视图:
SELECT * from ConnectionsView Where EquipmentID = XXX and EquipmentPortNum = YYY
我的问题是:一个比另一个有什么优势 - 尤其是性能?
由于我将从 ORM 调用视图,因此查询将具有参数化的过滤器选项并导致缓存的执行计划,这意味着(除非我错了)存储的 proc 在观点 - 这是正确的吗?
【问题讨论】:
What is more powefull between a stored procedure and a view?的可能重复 为什么不是 UDF,因为这似乎是您所描述的(需要参数化的单个选择)?除非你的 ORM 不支持它们...... SQL-Server Performance: What is faster, a stored procedure or a view?的可能重复 【参考方案1】:重复..我自己问的一个问题Here
还有一个 Here 由 Roberto Sebestyen 提出的问题
希望你能在这些中找到答案..
【讨论】:
以上是关于使用存储过程而不是视图有啥优势吗?的主要内容,如果未能解决你的问题,请参考以下文章