【发布时间】: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 在观点 - 这是正确的吗?
【问题讨论】:
-
为什么不是 UDF,因为这似乎是您所描述的(需要参数化的单个选择)?除非你的 ORM 不支持它们......
标签: sql sql-server stored-procedures