День добрый, уважаемые коллеги!
Столкнулись с ситуацией, когда происходит блокировка записей таблицы в базе данных 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.
Блокировка данных таблицы в базе MS SQL
Re: Блокировка данных таблицы в базе MS SQL
Мы провели проверку и создали таблицы, а также выполнили запрос, аналогичный вашему, с использованием двух операторов LEFT JOIN.
Результаты показали, что блокировок на наших данных не зафиксировано.
При выполнении операций чтения, как в режиме прямого доступа, так и в режиме локальной копии, выполняется запрос SELECT.
Такой запрос не требуют эксклюзивного доступа к данным и не блокирует таблицу.
Результаты показали, что блокировок на наших данных не зафиксировано.
При выполнении операций чтения, как в режиме прямого доступа, так и в режиме локальной копии, выполняется запрос SELECT.
Такой запрос не требуют эксклюзивного доступа к данным и не блокирует таблицу.