IsolationLevel 열거형

정의

트랜잭션의 격리 수준을 지정합니다.Specifies the isolation level of a transaction.

public enum class IsolationLevel
public enum IsolationLevel
type IsolationLevel = 
Public Enum IsolationLevel
상속
IsolationLevel

필드

Chaos 5

격리 수준이 높은 트랜잭션에서 보류 중인 변경은 덮어쓸 수 없습니다.The pending changes from more highly isolated transactions cannot be overwritten.

ReadCommitted 2

트랜잭션을 수행하는 동안 일시적 데이터를 읽을 수 없지만 수정할 수는 있습니다.Volatile data cannot be read during the transaction, but can be modified.

ReadUncommitted 3

트랜잭션을 수행하는 동안 일시적 데이터를 읽고 수정할 수 있습니다.Volatile data can be read and modified during the transaction.

RepeatableRead 1

트랜잭션을 수행하는 동안 일시적 데이터를 읽을 수 있지만 수정할 수는 없습니다.Volatile data can be read but not modified during the transaction. 트랜잭션을 수행하는 동안 새 데이터를 추가할 수 있습니다.New data can be added during the transaction.

Serializable 0

트랜잭션을 수행하는 동안 일시적 데이터를 읽을 수 있지만 수정할 수는 없으며 새 데이터를 추가할 수도 없습니다.Volatile data can be read but not modified, and no new data can be added during the transaction.

Snapshot 4

일시적 데이터를 읽을 수 있습니다.Volatile data can be read. 트랜잭션은 데이터를 수정하기 전에, 데이터가 처음 읽혀진 후 다른 트랜잭션이 이 데이터를 변경했는지 확인합니다.Before a transaction modifies data, it verifies if another transaction has changed the data after it was initially read. 데이터가 업데이트된 경우 오류가 발생합니다.If the data has been updated, an error is raised. 이 경우 트랜잭션이 이전에 커밋된 데이터 값에 영향을 미칠 수 있습니다.This allows a transaction to get to the previously committed value of the data.

Snapshot 격리 수준으로 만든 트랜잭션을 승격하려고 하면 "IsolationLevel 스냅샷이 있는 트랜잭션을 승격할 수 없습니다"라는 오류 메시지와 함께 InvalidOperationException이 throw됩니다.When you try to promote a transaction that was created with the Snapshot isolation level, an InvalidOperationException is thrown with the error message "Transactions with IsolationLevel Snapshot cannot be promoted".

Unspecified 6

지정된 격리 수준과 다른 수준이 사용되지만 수준을 결정할 수는 없습니다.A different isolation level than the one specified is being used, but the level cannot be determined. 이 값을 설정하면 예외가 throw됩니다.An exception is thrown if this value is set.

설명

트랜잭션에 의해 영향을 받는 데이터는 휘발성 라고 합니다.The data affected by a transaction is called volatile. 트랜잭션을 만들 때 트랜잭션에 적용되는 격리 수준을 지정할 수 있습니다.When you create a transaction, you can specify the isolation level that applies to the transaction. 트랜잭션의 격리 수준을 완료 되는 다른 트랜잭션이 트랜잭션 전에 휘발성 데이터에 갖는 액세스 수준이 결정 합니다.The isolation level of a transaction determines what level of access other transactions have to volatile data before a transaction completes.

최하위 격리 수준인 ReadUncommitted을 하면 여러 트랜잭션이 동시에 데이터 저장소에서 작동 하도록 하 고 트랜잭션 중단으로 인해 데이터 손상 으로부터 보호 되지 않음를 제공 합니다.The lowest isolation level, ReadUncommitted, allows many transactions to operate on a data store simultaneously and provides no protection against data corruption due to interruptive transactions. 가장 높은 격리 수준 Serializable, 높은 수준의 지정 하면 다른 트랜잭션이 대 한 보호를 제공 하지만 각 트랜잭션이 다른 트랜잭션에서 데이터에 적용할 수 전에 완료 되어야 합니다.The highest isolation level, Serializable, provides a high degree of protection against interruptive transactions, but requires that each transaction complete before any other transactions are allowed to operate on the data.

트랜잭션의 격리 수준 트랜잭션이 만들어질 때 결정 됩니다.The isolation level of a transaction is determined when the transaction is created. 기본적으로 System.Transactions 인프라 만듭니다 Serializable 트랜잭션.By default, the System.Transactions infrastructure creates Serializable transactions. 트랜잭션의 Transaction.IsolationLevel 속성을 사용 하 여 기존 트랜잭션의 격리 수준을 확인할 수 있습니다.You can determine the isolation level of an existing transaction by using the Transaction.IsolationLevel property of a transaction.

적용 대상