Поделиться через


Блокировка и снятие блокировки баз данных (XMLA)

Вы можете заблокировать и разблокировать базы данных, используя команды блокировки и разблокировки в XML для анализа (XMLA). Другие команды XML для аналитики также при необходимости автоматически блокируют и снимают блокировку объектов в процессе выполнения команды. Вы можете явно заблокировать или разблокировать базу данных для выполнения нескольких команд в рамках одной транзакции, например команды пакетной службы, не позволяя другим приложениям фиксировать транзакцию записи в базу данных.

Блокировка баз данных

Команда Lock блокирует объект для совместного или монопольного использования в контексте текущей активной транзакции. Блокировка объекта не позволяет фиксировать транзакции, пока она не будет снята. Microsoft SQL Server SQL Server Analysis Services поддерживает два типа блокировок, общих блокировок и монопольных блокировок. Дополнительные сведения о типах блокировок, поддерживаемых SQL Server Analysis Services, см. в разделе "Элемент Mode" (XMLA).

SQL Server Analysis Services позволяет блокировать только базы данных. Элемент Object должен содержать ссылку на объект в базу данных SQL Server Analysis Services. Если элемент Object не указан или если элемент Object ссылается на объект, отличающийся от базы данных, возникает ошибка.

Важно!

Явно выполнять команду Lock могут только администраторы базы данных или администраторы сервера.

Другие команды неявно выдают команду lock в базе данных SQL Server Analysis Services. Любая операция по чтению данных или метаданных из базы данных, например любой метод Discover или метод Execute , запускающий команду Statement , неявно устанавливает совмещаемую блокировку для базы данных. Любая транзакция, которая фиксирует изменения данных или метаданных в объекте в базе данных SQL Server Analysis Services, например метод Execute, выполняющий команду Alter, неявно выдает монопольную блокировку базы данных.

Снятие блокировки с объектов

Команда Unlock снимает блокировку, установленную в контексте транзакции, активной в настоящее время.

Важно!

Только администраторы базы данных или администраторы сервера могут явно выдавать команду Unlock .

Все блокировки удерживаются в контексте текущей транзакции. После фиксации или отката текущей транзакции все блокировки, определенные в рамках транзакции, автоматически снимаются.

См. также:

Элемент Lock (XML для аналитики)
Элемент Unlock (XML для аналитики)
Разработка с использованием XMLA в службах Analysis Services