Condividi tramite


Blocco e sblocco di database (XMLA)

È possibile bloccare e sbloccare i database usando rispettivamente i comandi Lock and Unlock in XML for Analysis (XMLA). In genere, gli altri comandi XMLA bloccano e sbloccano automaticamente gli oggetti in base alle esigenze per completare il comando durante l'esecuzione. È possibile bloccare o sbloccare in modo esplicito un database per eseguire più comandi all'interno di una singola transazione, ad esempio un comando Batch , impedendo ad altre applicazioni di eseguire il commit di una transazione di scrittura nel database.

Blocco di database

Il comando Lock blocca un oggetto, per l'uso condiviso o esclusivo, nel contesto della transazione attualmente attiva. Un blocco su un oggetto impedisce alle transazioni di eseguire il commit finché non viene rimosso. Microsoft SQL Server SQL Server Analysis Services supporta due tipi di blocchi, blocchi condivisi ed esclusivi. Per altre informazioni sui tipi di blocco supportati da SQL Server Analysis Services, vedere Elemento mode (XMLA).

SQL Server Analysis Services consente di bloccare solo i database. L'elemento Object deve contenere un riferimento a un oggetto a un database SQL Server Analysis Services. Se l'elemento Object non è specificato o se l'elemento Object fa riferimento a un oggetto diverso da un database, si verifica un errore.

Importante

Solo gli amministratori del database o gli amministratori del server possono eseguire in modo esplicito un comando Lock .

Altri comandi generano in modo implicito un comando Lock in un database SQL Server Analysis Services. Qualsiasi operazione che legge dati o metadati da un database, ad esempio qualsiasi metodo Discover o un metodo Execute che esegue un comando Statement , genera in modo implicito un blocco condiviso nel database. Qualsiasi transazione che esegue il commit delle modifiche apportate ai dati o ai metadati di un oggetto in un database SQL Server Analysis Services, ad esempio un metodo Execute che esegue un comando Alter, genera in modo implicito un blocco esclusivo nel database.

Sblocco di oggetti

Il comando Unlock rimuove un blocco applicato all'interno del contesto della transazione attualmente attiva.

Importante

Solo gli amministratori del database o gli amministratori del server possono eseguire in modo esplicito un comando Unlock .

Tutti i blocchi sono contenuti nel contesto della transazione corrente. Quando viene eseguito il commit oppure il rollback della transazione corrente, tutti i blocchi definiti all'interno della transazione vengono rilasciati automaticamente.

Vedere anche

Elemento Lock (XMLA)
Elemento Unlock (XMLA)
Sviluppo con XMLA in Analysis Services