Как улучшить производительность в этом заявлении DML? - PullRequest
0 голосов
/ 21 января 2011

Hi. Эти операторы выполняются в хранимой процедуре.Я передаю параметры, и он делает несколько обновлений и вставок.Я буду признателен за некоторые предложения по улучшению производительности, сокращению времени выполнения и улучшению структуры кода.Существует три разных таблицы: Таблица_01, Таблица_02, Таблица_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 Ответ

1 голос
/ 21 января 2011

Не слишком много, чтобы быть честным: это простой код, ничего особенного

Вы можете добавить транзакцию, чтобы все записи были успешными или все записи были неудачными.

Если вы обнаружите, что код работает медленно, я посмотрю на индексы TestID и у вас есть триггеры

...