如何提高此DML语句的性能?

时间:2011-01-21 19:26:47

标签: sql sql-server sql-server-2005 tsql insert-update

您好 此语句在存储过程中执行。我正在传递参数,它正在进行多次更新和插入。 我会感谢一些建议 - 提高性能, - 缩短执行时间 - 代码结构的改进。 有三个不同的表:Table_01,Table_02,Table_03。

INSERT INTO Table_01(
    TestID,     
    TestData,
    CurrentDate,
    UserID,
    Status
) VALUES (
    @testID,        
    @testData,
    @iDateTime,
    @userID,
    @Status
)

IF (@Status = 1) 
BEGIN 

    DELETE FROM
        Table_02
    WHERE 
        TestID = @testID

    UPDATE Table_03
    SET
        Status = 1,
        Date = @iDateTime,
        Work = 0
    WHERE
        TestID = @testID
END

1 个答案:

答案 0 :(得分:1)

说实话并不是真的很多:它是直截了当的代码,没有什么花哨的

您可以添加一个事务,以便所有写入成功或所有写入都失败。

如果你发现代码速度慢,那么我会查看TestID上的索引,你有没有触发器