У меня есть веб-приложение, в котором веб-сервер и база данных SQL Server 2008 находятся в разных блоках в одной ферме серверов.
Если я возьму монолитную хранимую процедуру и разделю ее на несколько меньших хранимых процедур, сделав клиентский код ответственным за вызовы нескольких хранимых процедур вместо одной, и я собираюсь заметить существенноепроизводительность в моем веб-приложении?
Дополнительная справочная информация:
У меня есть хранимая процедура с несколькими сотнями строк кода, содержащая логику принятия решений, операторы обновления и, наконец,оператор select, который возвращает клиенту набор данных.
Мне нужно вставить часть функциональности в мой клиентский код (в этом смысле клиентский код - это веб-сервер ASP, который вызывает сервер базы данных)это вызывает компонент DLL.Однако хранимая процедура обновляет набор записей и возвращает обновленные данные в том же вызове, и мой код в идеале должен вызываться после , вызывается логика принятия решения и операторы обновления, но до данные возвращаются клиенту.
Чтобы эта функция работала, мне, вероятно, придется разделить существующий хранимый процесс по крайней мере на две части: одну хранимую процедуру, которая обновляет базу данных, и другую.который получает данные из базы данных.Затем я вставил бы свой новый код между этими сохраненными вызовами процедур.
Когда я смотрю на эту проблему, я не могу не думать, что с точки зрения обслуживания кода, было бы намного лучше изолировать все моего обновления и выбора операторов в тонких хранимых процессах и оставление бизнес-логики клиентскому коду.Таким образом, всякий раз, когда мне нужно вставить функциональность или логику принятия решения в мой клиентский код, все, что мне нужно сделать, это изменить код клиента, а не модифицировать огромный хранимый процесс.
Хотя использование тонких хранимых процедур может быть лучшеС точки зрения обслуживания кода, насколько сильно я буду страдать от увеличения производительности при увеличении числа обращений к базе данных?Чистый результат для данных такой же, но я чаще касаюсь базы данных.Как этот подход влияет на производительность, когда приложение масштабируется для удовлетворения спроса?
Я не из тех, кто ставит оптимизацию производительности выше всего остального, особенно когда это влияет на обслуживание кода, но я не хочу сниматья в ногу и создаю головную боль, когда веб-приложение масштабируется.