我有选择,插入,更新和删除查询。
如果我必须在同一存储过程中编写所有查询以提高性能,或者我应该在单独的存储过程中编写所有查询?
答案 0 :(得分:3)
为了便于维护,我会选择不同的程序。
如果相同的代码在一个proc或多个proc中,速度不会成为问题 - 只要代码相同,它将在一个proc或多个proc中以相同的方式运行。
获得良好速度的最佳方法是编写有效的查询。运行它并查看执行计划;然后在需要的地方调整查询。
您可以在此站点上找到有关查询调优和索引调整的大量有用信息(只需搜索它)。
答案 1 :(得分:3)
如果它是类似的,并且所有参数都是可管理的:
BEGIN TRANSACTION
INSERT
....
UPDATE
...
DELETE
COMMIT
是的,所有这一切都将消除多次调用的小开销,并将逻辑保持为一个整体。
但是如果是:
@ParamType char(1) --given parameter "I"nsert, "U"pdate, "D"elete
IF @ParamType='I'
INSERT
ELSE IF @ParamType='U'
UPDATE
ELSE
DELETE
将它们分成单独的程序,将它们组合在一起毫无意义。