Я использую .Net 2.0, ADO.NET, набор данных и адаптеры данных для управления моими данными и Microsoft SQL Server 2005 в качестве менеджера базы данных.
У меня есть приложение, которое генерирует большое количество результатов (500K +) и сохраняет их в базе данных. Если один из результатов генерации не удастся, я бы не хотел сохранять ни один из результатов. Поэтому я поместил все вставки базы данных в транзакцию, которая откатывается, если результат не может быть сгенерирован.
Однако таблица блокируется до тех пор, пока не будут записаны все результаты, что я не планировал. Или, по крайней мере, я предполагаю, что он заблокирован, ни один запрос SELECT не отвечает, пока вставка не закончится.
Есть ли способ заставить транзакцию не блокировать таблицу, когда транзакция активна?
Является ли хорошей идеей использовать транзакцию с таким количеством вставок?