2015-06-12 7 views
1

Я использую SQL Azure для приложения asp.net на основе Saas. Я избегал транзакций как можно больше, чтобы предотвратить взаимоблокировки для конечных пользователей. Это связано с моей недостаточностью знаний в DB Design, но я думал, что избежать транзакции по крайней мере один верный способ сократить блокировки таблиц и строк и, следовательно, проблемы конкуренции и взаимоблокировок в базе данных, используемой для SaaS.SQL Azure Connection and Transaction

Так что я не использую какую-либо форму транзакции явной базы данных в .net. Теперь предположим, что я открываю SQLConnection в .net и запускаю инструкцию insert, которая вставляет информацию в таблицу 1, а затем не закрывая соединение, которое я также вставляю в Table2 и Table3. Все эти вставки будут частью неявной транзакции.

ответ

1

Нет, операции с несколькими операциями открываются явно. Я считаю, что есть некоторые эзотерические настройки, которые вы можете использовать, чтобы открыть их неявно, но я считаю, что это серьезные ошибки дизайна и зло.

Я не понимаю, почему вы хотите этого поведения. Скорее, откройте транзакцию явно. Не существует различий в поведении, вызванных открытием транзакций.

, но я думал, что избежать транзакции является по крайней мере одним верным способом сокращения блокировок таблиц и строк и, следовательно, вопросов конкуренции и взаимоблокировок в базе данных, используемой для SaaS.

Это эвристически верно. Я скорее рекомендую вам ознакомиться с основами блокировки и так далее. Вы можете получить большую производительность за счет использования транзакций. Основное использование транзакций на самом деле очень просто. Включите изоляцию моментальных снимков. Вероятность составляет около 99%, что вы захотите этого.