Freigeben über


Sperren und Entsperren von Datenbanken (XMLA)

Sie können Datenbanken mithilfe der Befehle Lock und Unlock in XML for Analysis (XMLA) sperren bzw. entsperren. In der Regel sperren und entsperren andere XMLA-Befehle Objekte je nach Bedarf automatisch, um den Befehl während der Ausführung abschließen zu können. Sie können eine Datenbank explizit sperren oder entsperren, um mehrere Befehle innerhalb einer einzelnen Transaktion auszuführen, etwa den Batch-Befehl, während Sie gleichzeitig verhindern, dass andere Anwendungen eine Schreibtransaktion in der Datenbank ausführen.

Sperren von Datenbanken

Der Lock-Befehl sperrt die gemeinsame oder exklusive Nutzung eines Objekts im Rahmen der derzeit aktiven Transaktion. Die Sperre eines Objekts verhindert so lange die Übermittlung von Transaktionen, bis die Sperre aufgehoben wird. Microsoft SQL Server Analysis Services unterstützt zwei Arten von Sperren: gemeinsame Sperren und exklusive Sperren. Weitere Informationen über die von Analysis Services unterstützten Sperrentypen finden Sie unter Mode-Element (XMLA).

Analysis Services ermöglicht nur die Sperrung von Datenbanken. Das Object-Element muss einen Objektverweis auf eine Analysis Services-Datenbank enthalten. Wenn das Object-Element nicht angegeben ist oder wenn das Object-Element auf ein Objekt verweist, bei dem es sich nicht um eine Datenbank handelt, tritt ein Fehler auf.

SicherheitshinweisSicherheitshinweis

Nur Datenbankadministratoren oder Serveradministratoren können explizit einen Lock-Befehl ausgeben.

Andere Befehle geben implizit auf einer Analysis Services-Datenbank einen Lock-Befehl aus. Jeder Vorgang, der Daten oder Metadaten aus einer Datenbank einliest (beispielsweise jede Discover-Methode oder eine Execute-Methode, die einen Statement-Befehl ausführt), gibt implizit eine gemeinsame Sperre der Datenbank aus. Jede Transaktion, die Daten- oder Metadatenänderungen an ein Objekt auf einer Analysis Services-Datenbank übermittelt (beispielsweise eine Execute-Methode, die einen Alter-Befehl ausführt), gibt implizit eine exklusive Sperre der Datenbank aus.

Entsperren von Objekten

Der Befehl Unlock entfernt eine innerhalb des Kontexts der gerade aktiven Transaktion begründete Sperre.

SicherheitshinweisSicherheitshinweis

Nur Datenbankadministratoren oder Serveradministratoren können explizit einen Unlock-Befehl ausgeben.

Alle Sperren werden im Kontext der aktuellen Transaktion abgehalten. Wenn die aktuelle Transaktion ausgeführt oder für diese ein Rollback durchgeführt wird, werden alle Sperren, die innerhalb der Transaktion definiert sind, automatisch aufgehoben.