Что-то меня беспокоит о моем приложении. У меня есть SQL-запрос, который объединяет вставки в базу данных в разных таблицах. Я определил, сколько времени требуется для завершения процесса, это занимает около 1,5 секунд. На данный момент я даже не занимаюсь разработкой запроса, у меня все еще есть дополнительные вставки для программирования. Поэтому я полностью ожидаю, что это будет продолжаться дольше, возможно, до 3 секунд.Является ли моя транзакция SQL слишком длинной?
Теперь важно, чтобы все эти данные были согласованными и заканчивались либо полностью, либо совсем не были. Так что мне интересно, так это хорошо, что сделка длится так долго. Не блокирует ли она таблицу, поэтому выбор, вставки, обновления и т. Д. ... не может быть запущен до завершения транзакции? Я беспокоюсь, что если этот запрос выполняется часто, он может заблокировать все приложение, чтобы некоторые его части стали либо невероятно медленными, либо непригодными для использования. С низкой базой пользователей я сомневаюсь, что это будет проблемой, но если мое приложение должно получить некоторую тягу, этот запрос потенциально может быть много.
Должен ли я быть обеспокоен этим или я что-то упускаю, когда база данных не будет действовать, как я думаю. Я использую базу данных SQL Server 2014.
Следует отметить, что я приурочил это с использованием объекта StopWatch C# непосредственно перед началом транзакции и остановил его сразу после того, как изменения были зафиксированы. Так что это примерно так же точно, как может быть.