Спасибо, что нашли время, чтобы прочитать мой вопрос. Мы создали систему с использованием T-SQL, которая обрабатывает (большое) количество данных. Когда мы начинаем обрабатывать эти данные, эта операция обычно занимает около 15 минут. В течение этого времени, по некоторым причинам, кажется, что есть блокировка для всех объектов в базе данных. В некоторой степени я понимаю, что я не могу запросить таблицы, в которые записываются. Но также SQL Server дает мне сообщение блокировки тайм-аута, когда я обновляю список таблиц, например (используя F5 в узле Tables в проводнике объектов).SQL Server Large Transaction блокирует все таблицы
Мой код работает на основе следующего шаблона:
CREATE PROCEDURE Sample
as
SET NOCOUNT, XACT_ABORT ON
BEGIN TRY
BEGIN TRANSACTION
...
COMMIT TRANSACTION
END TRY
BEGIN CATCH
BEGIN
PRINT 'STORED PROCEDURE - Returned errors while processing'
ROLLBACK TRANSACTION
END
END CATCH
Теперь, когда я начинаю это я могу выполнить SELECT, с (NOLOCK) запросы на любом столе. Но я не могу просматривать определения в представлениях, хранимых процедурах или в основном выполнять любые другие операции в базе данных.
Я уже установил уровень изоляции READ UNCOMMITTED, но это, похоже, не имеет значения.
Цените любую помощь по этому вопросу.
С наилучшими пожеланиями,
уровни изоляции влияют на выбор утверждения работы, те, которые не будут влиять на DDL, DML..Locking, большие блокирования темы, поэтому поищите о том, как разрешить запирающие блокировок и начните оттуда – TheGameiswar