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 utilizzo condiviso o esclusivo, all'interno del contesto della transazione attualmente attiva. Un blocco su un oggetto impedisce alle transazioni di eseguire il commit finché non viene rimosso. Microsoft SQL Server Analysis Services supporta due tipi di blocchi, blocchi condivisi ed esclusivi. Per altre informazioni sui tipi di blocco supportati da Analysis Services, vedere Elemento mode (XMLA).

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

Importante

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

Altri comandi generano in modo implicito un Lock comando in un database di 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 in un oggetto in un database di Analysis Services, ad esempio un Execute metodo 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