Thursday, March 17, 2011

Protocolos de isolamento

O isolamento é uma propriedade fundamental das transações. Existem vários níveis diferentes de isolamento, e um nível de ne a forma com as modi ficações feitas por uma transação são visíveis nas transações executadas concorrentemente. Eles de nem e controlam vários fatores relativamente aos bloqueios sobre os dados. Por exemplo, de nem se são feitos bloqueios aos dados se uma transacção precisa de fazer leituras, por quanto tempo os bloqueios são mantidos, etc.

Um nível baixo de isolamento aumenta a capacidade de concorrência das transacções aos dados mas o ónus que se paga é a maior probabilidade das transacções obterem dados desactualizados ou falsos (chamados dirty reads). Por outro lado, um nível alto de isolamento, reduz a capacidade de concorrência e o aumento da probabilidade de ocorrerem deadlocks. O SQL Server suporta 5 níveis de isolamento.

Abaixo descrevemos os níveis suportados organizados do nível mais baixo para o nível mais alto de isolamento:

ˆ READ UNCOMMITTED
ˆ READ COMMITTED
ˆ REPEATABLE READ
ˆ SNAPSHOT
ˆ SERIALIZABLE

O protocolo de isolamento por omissão no SQL Server é o READ COMMITTED.

No comments: