2011-01-21 60 views
0

嗨 此声明在存储过程中执行。我传递参数,它正在做多个更新和插入。 我会欣赏 的一些建议 - 提高性能, -减少执行时间 - 以及代码结构的改进。 有三个不同的表格:Table_01,Table_02,Table_03。如何提高此DML语句中的性能?

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 
+0

欢迎堆栈溢出。在我们建议任何事情之前,我们需要看看你的表格定义。 – 2011-01-21 19:31:26

回答

1

不是真的太多的调整,说实话:这是简单的代码,没有什么花哨

所以所有的写操作成功,要么全部写入失败,您可以添加一个事务。

如果您发现该代码缓慢的话,我想看看在TestID索引和你有触发器