2011-01-21 11 views
0

こんにちは このステートメントはストアドプロシージャで実行されます。私はパラメータを渡しており、複数の更新と挿入を行っています。 にいくつかの提案をお願いします。 実行時間を短縮して を改善し、コード構造を改善しました。 Table_01、Table_02、Table_03の3つの異なるテーブルがあります。この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

ようこそ、スタックオーバーフローです。何かを提案する前に、テーブル定義を調べる必要があります。 –

+0

これはかなり簡単です、実行にはどれくらいの時間がかかりますか?あなたが見せていないところにループがありますか? – HLGEM

+0

@HLGEM:ループはありません。しかし、上記の構造を改善する範囲があれば好奇心が強いです...それは少しのパフォーマンスを与えることができます – User13839404

答えて

1

本当にあまり正直言って微調整する:それは簡単なコード、

空想何もすべての書き込みが成功するか、すべての書き込みが失敗し、それようにするには、トランザクションを追加することができます。

コードが遅い場合は、TestIDのインデックスを調べて、トリガーを持っていますか?

関連する問題