www.wikidata.uk-ua.nina.az
Riven izolovanosti tranzakcij znachennya sho zadaye riven pri yakomu v tranzakciyi dozvolyayutsya neuzgodzheni dani tobto stupin izolovanosti odniyeyi tranzakciyi vid inshoyi Bilsh visokij riven izolovanosti pidvishuye tochnist danih ale pri comu mozhe znizhuvatis kilkist tranzakcij sho vikonuyutsya paralelno Z inshogo boku bilsh nizkij riven izolovanosti dozvolyaye vikonuvati bilshe paralelnih tranzakcij ale znizhuye tochnist danih Zmist 1 Problemi paralelnogo dostupu z vikoristannyam tranzakcij 1 1 Vtrachene onovlennya 1 2 Brudne chitannya 1 3 Nepovtoryuvane chitannya 1 4 Fantomne chitannya 2 Rivni izolyaciyi 2 1 Serializable vporyadkovanist 2 2 Repeatable read povtoryuvanist chitannya 2 3 Read committed chitannya fiksovanih danih 2 4 Read uncommitted chitannya nezafiksovanih danih 3 Povedinka pri riznih rivnyah izolovanosti 4 Primitki 5 PosilannyaProblemi paralelnogo dostupu z vikoristannyam tranzakcij red Pri paralelnomu vikonanni tranzakcij mozhlivi taki problemi vtrachene onovlennya angl lost update pri odnochasnij zmini odnogo bloku danih riznimi tranzakciyami odna iz zmin vtrachayetsya brudne chitannya angl dirty read chitannya danih yaki dodani chi zmineni tranzakciyeyu yaka potim ne pidtverditsya vidkotitsya nepovtoryuvane chitannya angl non repeatable read pri povtornomu chitanni v ramkah odniyeyi tranzakciyi ranishe prochitani dani z yavlyayutsya zminenimi fantomne chitannya angl phantom reads odna tranzakciya v hodi svogo vikonannya dekilka raziv vibiraye mnozhinu ryadkiv za odnimi i timi zh kriteriyami Insha tranzakciya v intervalah mizh cimi vibirkami dodaye chi vidalyaye ryadki chi zminyuye stovpci deyakih ryadkiv sho vikoristovuyetsya v kriteriyah vibirki pershoyi tranzakciyi i uspishno zakinchuyetsya V rezultati otrimayemo sho odni i ti zh vibirki v pershij tranzakciyi dayut rizni mnozhini ryadkiv Rozglyanemo situaciyi v yakih mozhlivo viniknennya danih problem Vtrachene onovlennya red Situaciya koli pri odnochasnij zmini odnogo bloku danih riznimi tranzakciyami odna zi zmin vtrachayetsya Pripustimo ye dvi tranzakciyi sho vikonuyutsya odnochasno Tranzakciya 1 Tranzakciya 2UPDATE tbl1 SET f2 f2 20 WHERE f1 1 UPDATE tbl1 SET f2 f2 25 WHERE f1 1 V oboh tranzakciyah zminyuyetsya znachennya polya f2 pri comu odna z zmin vtrachayetsya Tak sho f2 bude zbilshene ne na 45 a tilki na 20 abo 25 Ce traplyayetsya tomu sho Persha tranzakciya prochitala potochnij stan polya Druga tranzakciya zrobila svoyi zmini bazuyuchis na svoyih zberezhenih v pam yati danih Persha onovlyuye pole vikoristovuyuchi svoyi stari dani Brudne chitannya red Chitannya danih yaki dodani chi zmineni tranzakciyeyu yaka zgodom ne pidtverditsya vidkotitsya Pripustimo ye dvi tranzakciyi vidkriti v riznih z yednannyah z bazoyu v yakih vikonani taki SQL operatori Tranzakciya 1 Tranzakciya 2SELECT f2 FROM tbl1 WHERE f1 1 UPDATE tbl1 SET f2 f2 1 WHERE f1 1 SELECT f2 FROM tbl1 WHERE f1 1 ROLLBACK V tranzakciyi 1 zminyuyetsya znachennya polya f2 a potim v tranzakciyi 2 vibirayetsya znachennya cogo polya Pislya cogo traplyayetsya vidkat tranzakciyi 1 V rezultati znachennya otrimane drugoyu tranzakciyeyu bude vidriznyatis vid znachennya sho zberigayetsya v bazi danih Nepovtoryuvane chitannya red Situaciya koli pri povtornomu chitanni v ramkah odniyeyi tranzakciyi ranishe prochitani dani viyavlyayutsya zminenimi Pripustimo ye dvi tranzakciyi vidkriti v riznih sesiyah v yakih vikonani taki SQL operatori Tranzakciya 1 Tranzakciya 2SELECT f2 FROM tbl1 WHERE f1 1 SELECT f2 FROM tbl1 WHERE f1 1 UPDATE tbl1 SET f2 f2 1 WHERE f1 1 COMMIT SELECT f2 FROM tbl1 WHERE f1 1 V tranzakciyi 2 vibirayetsya znachennya polya f2 potim v tranzakciyi 1 zminyuyetsya znachennya polya f2 Pri povtornij sprobi viboru znachennya z polya f2 v tranzakciyi 2 bude otrimanij inshij rezultat Cya situaciya osoblivo neprijnyatna koli dani zchituyutsya dlya yih chastkovoyi zmini i zvorotnogo zapisu v bazu danih Fantomne chitannya red Situaciya koli pri povtornomu chitanni v ramkah odniyeyi tranzakciyi odna i ta zh vibirka daye rizni mnozhini ryadkiv Pripustimo ye dvi tranzakciyi vidkriti v riznih sesiyah v yakih vikonani taki SQL operatori Tranzakciya 1 Tranzakciya 2SELECT SUM f2 FROM tbl1 INSERT INTO tbl1 f1 f2 VALUES 15 20 COMMIT SELECT SUM f2 FROM tbl1 V tranzakciyi 2 vikonuyetsya SQL operator yakij vikoristovuye vsi znachennya polya f2 Potim v tranzakciyi 1 vikonuyetsya vstavka novogo ryadka yaka prizvodit do togo sho povtorne vikonannya SQL operatora v tranzakciyi 2 vidast inshij rezultat Taka situaciya nazivayetsya fantomnim chitannyam Vid nepovtoryuvanogo chitannya vono vidriznyayetsya tim sho rezultat povtornogo zvernennya do danih zminivsya ne cherez zminennya vidalennya samih cih danih a cherez poyavu novih fantomnih danih Rivni izolyaciyi red Standart SQL 92 viznachaye rivni izolyaciyi ustanovka yakih zapobigaye deyakim konfliktnim situaciyam Vvedeni nastupni chotiri rivni izolyaciyi Serializable vporyadkovanist red Najbilsh visokij riven izolovanosti tranzakciyi povnistyu izolyuyutsya odna vid odnoyi Na comu rivni rezultati paralelnogo vikonannya tranzakcij dlya bazi danih u bilshosti vipadkiv mozhna vvazhati takimi sho zbigayutsya z poslidovnim vikonannyam tih zhe tranzakcij po cherzi v bud yakomu poryadku Repeatable read povtoryuvanist chitannya red Riven pri yakomu chitannya odnogo i togo zh ryadku chi ryadkiv v tranzakciyi daye odnakovij rezultat Poki tranzakciya ne zakinchena niyaki inshi tranzakciyi ne mozhut zminiti ci dani Read committed chitannya fiksovanih danih red Prijnyatij za zamovchuvannyam riven dlya Microsoft SQL Server Zakinchene chitannya pri yakomu vidsutnye brudne chitannya tobto chitannya odnim koristuvachem danih sho ne buli zafiksovani v BD komandoyu COMMIT Prote v procesi roboti odniyeyi tranzakciyi insha mozhe buti uspishno zakinchena i zrobleni neyu zmini zafiksovani V pidsumku persha tranzakciya bude pracyuvati z inshim naborom danih Ce problema nepovtoryuvanogo chitannya V Oracle blokuvannya na chitannya nemaye zamist cogo tranzakciya sho chitaye otrimuye tu versiyu danih yaka bula aktualna v bazi do pochatku tiyeyi sho pishe V Informix mozhna zapobigti konfliktam mizh tranzakciyami sho chitayut ta pishut vstanovivshi parametr konfiguraciyi USELASTCOMMITTED pochinayuchi z versiyi 11 1 pri comu tranzakciya sho chitaye bude otrimuvati ostanni pidtverdzheni dani 1 Read uncommitted chitannya nezafiksovanih danih red Najnizhchij riven izolyaciyi yakij vidpovidaye rivnyu 0 Vin garantuye tilki vidsutnist vtrachenih onovlen 2 Yaksho dekilka tranzakcij odnochasno namagalis zminyuvati odin i toj zhe ryadok to v kincevomu varianti ryadok bude mati znachennya viznachenij ostannoyu uspishno vikonanoyu tranzakciyeyu Povedinka pri riznih rivnyah izolovanosti red zapobigaye ne zapobigaye Riven izolyaciyi Fantomne chitannya Nepovtoryuvane chitannya Brudne chitannya Vtrachene onovlennya 3 SERIALIZABLE REPEATABLE READ READ COMMITTED READ UNCOMMITTED Primitki red Parametr konfiguracii USELASTCOMMITTED http publib boulder ibm com infocenter idshelp v115 topic com ibm adref doc ids adr 0186 htm Understanding Isolation Levels Understanding the Available Transaction Isolation LevelsPosilannya red SQL 92 Isolation Levels Isolation Levels in the Database Engine Overview of Oracle Database Transaction Isolation Levels Types of Isolation Level in MS SQL Server SET TRANSACTION ISOLATION LEVEL Transact SQL Otrimano z https uk wikipedia org w index php title Rivni izolovanosti tranzakcij amp oldid 28003133