哪种方法速度最好?在SQL Server中,存储过程

时间:2010-03-19 14:57:25

标签: sql-server stored-procedures

我有选择,插入,更新和删除查询。

如果我必须在同一存储过程中编写所有查询以提高性能,或者我应该在单独的存储过程中编写所有查询?

2 个答案:

答案 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

将它们分成单独的程序,将它们组合在一起毫无意义。