Vad är Snapshot -isolering?
Snapshot Isolation är en egenskap i transaktionsbehandling och databaser som garanterar alla läsningar som är gjorda i en transaktion, se samma databas "Snapshot." Detta innebär att transaktionen kommer att förbinda sig att framgångsrikt behandla begäran om dess uppdateringar inte strider mot några andra samtidiga uppdateringar. Snapshot-isolering är en kontrollalgoritm för samtidighet med flera versioner som ger isoleringsnivåer som undviker problem som vanligtvis uppstår med samtidighet. Denna isolering har implementerats av flera olika strukturerade frågespråksservrar (SQL) som arbetar med minimala mängder serialiseringsavvikelser. Snapshot -isolationer garanterar dock inte fullständig serialisering på en server.
Många stora datahanteringssystem innehåller standardisoleringsnivåer som inte är serialiserbara och möter ofta avvikelser av serialisering utan ögonblicksbild. Detta kan leda till att stora system har många förekomster av isoleringsfel varje dag, whiCH kan leda till att data skadas, särskilt det som finns i lagerapplikationer av data. Anledningen till att ett system kan fungera i detta tillstånd beror på att applikationer som körs på lägre isoleringsnivåer kan förbättra effektiviteten om inga allvarliga fel uppstår. Inklusive ögonblicksbild i ett system minskar dessa avvikelser och - när man tar driftstid och mängden fel som uppstår - ökar effektiviteten ytterligare.
Vissa databaser erbjuder ögonblicksbild i motsats till full seriebilitet, men det finns också avvikelser som kan uppstå inom en databas som använder denna typ av isolering. Dessa avvikelser kan leda till överträdelser av datakonsistens eftersom transaktioner som upprätthåller konsistensinterleave eller är arrangerade i växlande lager. Det enda sättet att lösa problemet och förhindra avvikelser som dessa är att manipulera applikationer med en introduktionav konstgjorda lås och motstridiga uppdateringar, som följdes av analys av konflikterna mellan varje par transaktioner. Ett annat sätt att lösa dessa avvikelser är emellertid att modifiera algoritmerna för ett databassystems samtidighetskontroll för att göra automatiska upptäckter och förebyggande av avvikelser av ögonblicksbild vid körning. Detta kan göras för viktiga eller godtyckliga applikationer, men ger isolering som är serialiserbar.
Nyare SQL -servrar har kunnat införa nya nivåer av isolering samt nya nivåer av ögonblicksbild för att förbättra samtidigheten i vissa applikationer. Där tidiga versioner av SQL -servern använde låsning som grund för samtidighet, är ögonblicksbild isolering beroende av förbättringar av radversion som är avsedd för förbättring av prestanda. Det förbättrar denna prestanda när den möter scenarier med läs- eller skrivblockering genom att undvika dem.