В приложении ASP.NET у меня есть небольшое количество довольно сложных, часто используемых операций для выполнения с базой данных. В этих операциях одна или несколько из нескольких таблиц нуждаются в обновлении или вставке на основе логической оценки как входных параметров, так и значений определенных таблиц. Я сохранил разделение логики и доступа к данным, поэтому сейчас операция выглядит так:
- Запрос получен от клиента
- Бизнес-уровень вызывает уровень данных для извлечения данных из базы данных
- Результат обработки бизнес-уровня и определение выполняемой операции.
- Бизнес-уровень вызывает соответствующую операцию с данными
- Ответ отправлен клиенту
Как видите, клиент ожидает, пока к базе данных будут сделаны два отдельных запроса. В поисках решения этой проблемы я нашел хранимые процедуры CLR, но я не уверен, правильно ли я понимаю, для чего они полезны.
Я написал замену приведенному выше коду, в котором шаги 2–4 особенно размещены в CLR SP. Насколько я понимаю, SP будет выполняться локально SQL Server и приведет к тому, что на сервер будет сделан только один вызов.
В основном мой вопрос: это предполагаемое использование CLR SP или я что-то упустил?
Я понимаю, что это своего рода структурный компромисс, поэтому, если есть лучший способ сделать это, я бы хотел его услышать.