Какой метод является лучшим методом для скорости? в SQL Server, хранимая процедура - PullRequest
1 голос
/ 19 марта 2010

У меня есть запрос на выбор, вставку, обновление и удаление.

Если мне нужно написать все запросы в одной и той же хранимой процедуре, что хорошо для производительности, или я должен написать все запросы в отдельных хранимых процедурах?

Ответы [ 2 ]

3 голосов
/ 19 марта 2010

Если это что-то вроде и все параметры управляемы:

BEGIN TRANSACTION
    INSERT
    ....
    UPDATE
    ...
    DELETE
COMMIT

да, все в одном устранит небольшую нагрузку на несколько вызовов и сохранит логику вместе как единое целое.

однако, если это:

@ParamType char(1) --given parameter "I"nsert, "U"pdate, "D"elete

IF @ParamType='I'
   INSERT
ELSE IF @ParamType='U'
   UPDATE
ELSE
    DELETE

разбивают их на отдельные процедуры, нет смысла их объединять.

3 голосов
/ 19 марта 2010

Для простоты обслуживания я бы пошел на отдельные процедуры.

Скорость не будет проблемой, если один и тот же код находится в одном или нескольких процессах - если код один и тот же, он будет вести себя одинаково в одном или нескольких процессах.

Лучший способ получить хорошую скорость - написать эффективный запрос. Запустите его и просмотрите план выполнения; затем настройте запрос там, где требуется.

На этом сайте вы найдете много полезной информации о настройке запросов и настройке индексов (просто найдите).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...