Vad är ögonblicksbildisolering?
Snapshot-isolering är en egenskap i transaktionsbehandling och databaser som garanterar att alla läsningar som görs i en transaktion ser 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 andra samtidiga uppdateringar. Snapshot-isolering är en kontrollalgoritm för samtid i flera versioner som ger isoleringsnivåer som undviker de problem som ofta uppstår med samtidighet. Denna isolering har implementerats av flera olika SQL-servrar (strukturerade frågespråk), som fungerar med minimala mängder av seriell anomalier. Snapshot-isoleringar garanterar dock inte fullständig serierbarhet på en server.
Många stora datahanteringssystem innehåller standardisoleringsnivåer som inte kan serialiseras och ofta stöter på avvikelser av serialisering utan snapshot-isolering. Detta kan leda till att stora system har många förekomster av isoleringsfel varje dag, vilket 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 är att applikationer som körs på lägre isoleringsnivåer kan förbättra effektiviteten om inga allvarliga fel uppstår. Inklusive ögonblicksbildisolering i ett system minskar dessa avvikelser och - när man tar driftstid och mängden fel som inträffar - ökar effektiviteten ytterligare.
Vissa databaser erbjuder en snapshot-isolering i motsats till fullständig serierbarhet, men det finns också avvikelser som kan uppstå i en databas som använder denna typ av isolering. Dessa avvikelser kan leda till överträdelser av datakonsistens eftersom transaktioner som upprätthåller konsistens sammanflätas eller är arrangerade i växelvisa lager. Det enda sättet att lösa problemet och förebygga avvikelser som dessa är att manipulera applikationer med en introduktion av konstgjorda lås och motstridiga uppdateringar, som följdes av analys av konflikterna mellan varje transaktionspar. Ett annat sätt att lösa dessa avvikelser är dock att modifiera algoritmerna för ett databassystemets samtidighetskontroll för att göra automatiska upptäckter och förebyggande av avvikelser från snapshot-isolering vid körning. Detta kan göras för viktiga eller godtyckliga applikationer, men ger en isolering som kan serialiseras.
Nyare SQL-servrar har kunnat införa nya nivåer av isolering samt nya nivåer av snapshot-isolering 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 stillbildsisolering beroende av förbättringar av radversionerna avsedda 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.