Страница 1 из 1

Блокировка данных таблицы в базе MS SQL

Добавлено: 24 июл 2024, 10:33
Mitrich
День добрый, уважаемые коллеги!

Столкнулись с ситуацией, когда происходит блокировка записей таблицы в базе данных MS SQL Server при открытии пространственных данных с использованием запроса.
Например у нас имеется 3 таблицы
- LINVOBJ - таблица с пространственными данными
- DIC_NPA - справочник
- DIC_CLASSIFY 0 справочник

При открытии данных из базы с созданием связанной таблицы по запросу
Select O.ID, N.NAME NPA_NAME, C.NAME CL_NAME, O.SP_GEOMETRY, O.MI_STYLE
From LINVOBJ O
LEFT OUTER JOIN DIC_NPA N ON N.ID = O.NPA
LEFT OUTER JOIN DIC_CLASSIFY C ON C.ID = O.CLASSIFY
данные корректно открываются, но при этом таблица LINVOBJ блокируется для изменений.

Например запрос UPDATE LINVOBJ SET CLASSIFY=13 WHERE ID = 10 будет ожидать закрытия связанной таблицы.

Блокировка данных происходит под Astra Linux и под Windows.

Re: Блокировка данных таблицы в базе MS SQL

Добавлено: 28 июл 2024, 20:06
Александр
Мы провели проверку и создали таблицы, а также выполнили запрос, аналогичный вашему, с использованием двух операторов LEFT JOIN.
Результаты показали, что блокировок на наших данных не зафиксировано.

При выполнении операций чтения, как в режиме прямого доступа, так и в режиме локальной копии, выполняется запрос SELECT.
Такой запрос не требуют эксклюзивного доступа к данным и не блокирует таблицу.