Эффективность транзакции в коде против БД - PullRequest
5 голосов
/ 13 мая 2009

Что более эффективно - иметь IDbTransaction в коде .net или обрабатывать его в базе данных? Зачем?

Каковы возможные сценарии, в которых следует использовать любой из них?

1 Ответ

3 голосов
/ 13 мая 2009

Когда речь идет о транзакциях на основе соединений (IDbTransaction), общая производительность должна быть примерно одинаковой, но, обрабатывая ее в коде .NET, вы позволяете удобно распределять несколько операций базы данных по одному и тому же соединению. Если вы управляете транзакциями внутри TSQL, вам действительно следует ограничить его одним запросом TSQL. Вполне возможно, что для начала / конца возможны дополнительные поездки туда и обратно, но это вряд ли повредит вам.

Довольно редко (в наши дни) я пишу транзакции на основе TSQL вручную - возможно, если бы я писал что-то, вызываемое непосредственно сервером через агента (а не из моего собственного кода приложения).

Большая разница между IDbTransaction и TransactionScope. Подробнее см. Транзакции в .net , но короткая версия заключается в том, что TransactionScope немного медленнее (в зависимости от сценария), но может охватывают несколько соединений / баз данных (или других ресурсов).

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