Condividi tramite


Nozioni fondamentali sul blocco

Per comprendere il funzionamento del blocco in Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition), è necessario avere familiarità con le risorse che è possibile bloccare e con le diverse modalità utilizzabili per il blocco delle risorse.

Granularità del blocco

La granularità del blocco si riferisce al livello di applicazione del blocco:

  • Riga
  • Tabella
  • Pagina
  • Database

Il blocco di granularità più piccolo, ad esempio a livello di riga, aumenta la concorrenza ma un numero maggiore di righe bloccate richiede un numero maggiore di blocchi. Un blocco di granularità maggiore, ad esempio a livello di tabella, riduce la concorrenza perché il blocco di un'intera tabella limita l'accesso di altre transazioni alle varie sezioni della tabella. Il blocco a livello di tabella, tuttavia, richiede un minore numero di blocchi.

Per impostazione predefinita, SQL Server Compact Edition utilizza il blocco a livello di riga per le pagine di dati e il blocco a livello di pagina per le pagine di indice.

Nella tabella seguente vengono illustrate le risorse che possono essere bloccate da SQL Server Compact Edition.

Blocchi Descrizione

RID

Identificatore riga. Utilizzato per bloccare una sola riga all'interno di una tabella.

PAG

Pagina di dati o di indice.

TAB

Tutta la tabella, inclusi tutti i dati e gli indici.

MD

Metadati di tabella. Utilizzato per proteggere lo schema di tabella.

DB

Database

Modalità di blocco

Le modalità di blocco determinano il modo in cui le transazioni concorrenti possono accedere ai dati. SQL Server Compact Edition determina la modalità di blocco da utilizzare in base alle risorse da bloccare e alle operazioni da eseguire.

Nella tabella seguente vengono illustrate le modalità di blocco supportate da SQL Server Compact Edition.

Modalità di blocco Descrizione

Condiviso (S)

Protegge le risorse dagli accessi in lettura. Nessun'altra transazione è in grado di modificare i dati mentre sulla risorsa sono attivi blocchi condivisi (S).

Esclusivo (X)

Indica una modifica ai dati, ad esempio un'operazione di inserimento, aggiornamento o eliminazione. Assicura che non vengano eseguiti contemporaneamente più aggiornamenti della stessa risorsa.

Di aggiornamento (U)

Impedisce una forma comune di deadlock. Solo una transazione alla volta può ottenere un blocco di tipo U su una risorsa. Se la transazione modifica la risorsa, il blocco U viene convertito in blocco X.

Di schema

Utilizzato quando è in esecuzione un'operazione dipendente dallo schema di una tabella. I tipi di blocchi dello schema sono modifica dello schema (Sch-M) e stabilità dello schema (Sch-S).

Preventivo

Stabilisce una gerarchia di blocchi. I tipi più comuni di blocco preventivo sono IS, IU e IX. Questi blocchi indicano che è in corso una transazione su alcune risorse, ma non tutte, a livelli inferiori della gerarchia. Le risorse di livello più basso presenteranno un blocco S, U o X.

Importante:
Per il livello di isolamento predefinito di Read Committed, un'istruzione SELECT in SQL Server Compact Edition non richiede l'utilizzo di blocchi S per la lettura dei dati. Nonostante sia obbligatorio per Microsoft SQL Server, SQL Server Compact Edition non richiede il blocco S per impostare il livello Read Committed. L'unico blocco obbligatorio per un'istruzione SELECT è Sch-S, che protegge lo schema durante l'esecuzione dell'operazione. Di conseguenza, le istruzioni SELECT presentano un'elevata concorrenza. Per ulteriori informazioni, vedere Livello di isolamento della transazione.

Vedere anche

Concetti

Blocco (SQL Server Compact Edition)
Informazioni sul blocco
Personalizzazione del blocco

Guida in linea e informazioni

Assistenza su SQL Server Compact Edition