SQL Server:优化从存储过程中的输入更新多个记录

时间:2019-06-21 13:47:04

标签: sql-server

当调用存储过程以更新单个表中的多个记录时,我遇到了效率问题。实际的问题包含数百个参数,但这是一个简化的问题。

CREATE PROCEDURE UpdateData
    @ID1 int, @Value1 int,
    @ID2 int, @Value2 int,
    @ID3 int, @Value3 int
AS
BEGIN
    -- Update record with ID1
    -- Update record with ID2
    -- Update record with ID3
END

我看到了三种方法:

  1. 为每个ID /值对创建更新查询
  2. 创建while循环以遍历所有输入,并将它们传递给单个更新查询
  3. 将输入插入本地表,并使用创建的表在单个查询中进行更新

我不确定在什么时候创建表会比其他方法更有效率,因为我知道数据库擅长并行处理事务,但是创建临时表也需要时间。

除了运行和计时它们之外,我如何比较这三种方法?

您有推荐的方法吗?

0 个答案:

没有答案