Delen via


Het niveau van transactieisolatie instellen

Voor het instellen van het niveau van transactieisolatie gebruikt een toepassing het SQL_ATTR_TXN_ISOLATION verbindingskenmerk. Als de gegevensbron het aangevraagde isolatieniveau niet ondersteunt, kan het stuurprogramma of de gegevensbron een hoger niveau instellen. Om te bepalen welke transactieisolatieniveaus een gegevensbron ondersteunt en wat het standaardisolatieniveau is, roept een toepassing RESPECTIEVELIJK SQLGetInfo aan met de SQL_TXN_ISOLATION_OPTION- en SQL_DEFAULT_TXN_ISOLATION-opties.

Hogere niveaus van transactieisolatie bieden de meeste bescherming voor de integriteit van databasegegevens. Serialiseerbare transacties worden gegarandeerd niet beïnvloed door andere transacties en kunnen daarom gegarandeerd de integriteit van de database behouden.

Een hoger niveau van transactieisolatie kan echter tragere prestaties veroorzaken, omdat hierdoor de kans toeneemt dat de toepassing moet wachten op vergrendelingen op gegevens die worden vrijgegeven. Een toepassing kan een lager isolatieniveau opgeven om de prestaties in de volgende gevallen te verbeteren:

  • Wanneer kan worden gegarandeerd dat er geen andere transacties bestaan die de transacties van een toepassing kunnen verstoren. Deze situatie treedt alleen op in beperkte omstandigheden, zoals wanneer één persoon in een klein bedrijf dBASE-bestanden onderhoudt die personeelsgegevens op één computer bevatten en deze bestanden niet deelt.

  • Wanneer snelheid belangrijker is dan nauwkeurigheid en eventuele fouten waarschijnlijk klein zijn. Stel dat een bedrijf veel kleine verkopen maakt en dat grote verkopen zeldzaam zijn. Een transactie die een schatting maakt van de totale waarde van alle openstaande verkopen, kan veilig gebruikmaken van het isolatieniveau Read Uncommitted. Hoewel de transactie orders zou bevatten die worden geopend of gesloten en vervolgens worden teruggedraaid, zouden deze over het algemeen elkaar annuleren en de transactie veel sneller zijn omdat deze niet wordt geblokkeerd telkens wanneer een dergelijke bestelling tegenkomt.

Zie Optimistische gelijktijdigheid voor meer informatie.