Condividi tramite


Livelli di isolamento delle transazioni di cursore

Il comportamento di blocco delle transazioni di un cursore specifico è determinato dalle impostazioni di concorrenza del cursore, dagli hint di blocco specificati nell'istruzione SELECT del cursore e dalle opzioni per il livello di isolamento della transazione.

Microsoft SQL Server 2005 supporta i livelli di isolamento delle transazioni di cursore seguenti:

Read Committed

In SQL Server viene acquisito un blocco condiviso durante la lettura di una riga in un cursore, ma il blocco viene tuttavia rilasciato al termine dell'operazione di lettura. Poiché le richieste di blocco condiviso vengono bloccate da un blocco esclusivo, a un cursore viene impedita la lettura di una riga aggiornata da un'altra attività, ma di cui non è ancora stato eseguito il commit. Read Committed è il valore predefinito del livello di isolamento sia in SQL Server che in ODBC.

Read Uncommitted

In SQL Server non viene richiesto alcun blocco durante la lettura di una riga in un cursore e i blocchi esclusivi non vengono applicati. È possibile popolare i cursori con valori già aggiornati e di cui non è ancora stato eseguito il commit. L'utente pertanto ignora tutti i meccanismi di controllo delle transazioni di blocco di SQL Server 2005.

Repeatable Read o Serializable

In SQL Server 2005 viene richiesto un blocco condiviso per ogni riga che viene letta nel cursore, in modo analogo all'impostazione READ COMMITTED. Se tuttavia il cursore viene aperto all'interno di una transazione, i blocchi condivisi vengono mantenuti attivi fino alla fine della transazione anziché essere rilasciati dopo la lettura della riga. Questa impostazione equivale all'utilizzo dell'opzione HOLDLOCK in un'istruzione SELECT.

Snapshot

In SQL Server non viene richiesto alcun blocco durante la lettura di una riga in un cursore e i blocchi esclusivi non vengono applicati. Il cursore viene popolato con i valori relativi al momento del primo avvio della transazione. I blocchi di scorrimento vengono comunque richiesti indipendentemente dall'utilizzo dell' isolamento dello snapshot.

Vedere anche

Concetti

Personalizzazione del livello di isolamento delle transazioni
Modifica dei livelli di isolamento delle transazioni
Concorrenza dei cursori (Motore di database)

Guida in linea e informazioni

Assistenza su SQL Server 2005