Π’ ΠΌΠΈΡ€Π΅ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… систСм, Π³Π΄Π΅ сотни ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ вносят измСнСния Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ становится критичСским Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ. Вранзакция Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ β€” это Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… Π² условиях ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π‘Π΅Π· этого инструмСнта бухгалтСрскиС ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΊΠΈ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ, остатки Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ, Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Ρ‚Π΅Ρ€ΡΡ‚ΡŒΡΡ Π² пространствС сСрвСра.

По своСй сути транзакция прСдставляСт собой Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΡΡ Π»ΠΈΠ±ΠΎ всС вмСстС, Π»ΠΈΠ±ΠΎ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΡΡ вовсС. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅ слоТный Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ: систСма Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ²Π°Ρ€ со склада, Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠ»Π³ покупатСля ΠΈ Π½Π°Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Π²Ρ‹Ρ€ΡƒΡ‡ΠΊΡƒ. Если Π½Π° сСрСдинС процСсса сСрвСр ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡΡ ΠΈΠ»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ, Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… окаТСтся Π² нСконсистСнтном состоянии. ИмСнно Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎΡΡ‚ΡŒ выполнСния ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ катастрофы.

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для явных ΠΊΠΎΠΌΠ°Π½Π΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, Π½ΠΎ ΠΈ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… процСссах. ПониманиС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Вранзакция, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ программистам, Π½ΠΎ ΠΈ администраторам Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π΄ΠΈΠ°Π³Π½ΠΎΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π² 1Π‘

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ базируСтся Π½Π° Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… свойствах, извСстных ΠΊΠ°ΠΊ ACID. Π’ контСкстС 1Π‘ ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ эти ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ сСрвСра ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π‘Π£Π‘Π”. ΠΡ‚ΠΎΠΌΠ°Ρ€Π½ΠΎΡΡ‚ΡŒ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½Π°Π±ΠΎΡ€ дСйствий Π½Π΅Π΄Π΅Π»ΠΈΠΌ. Если хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ шаг Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ ошибкой, вся Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Π½Π΅Π½Π°.

Π˜Π·ΠΎΠ»ΡΡ†ΠΈΡ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π·Π°Ρ‰ΠΈΡ‰Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ чтСния Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΈΡ… измСнСния. Когда ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΡ‚Ρ‡Π΅Ρ‚, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π² это ΠΆΠ΅ врСмя ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚Π°ΠΊΠΈΠΌΠΈ, ΠΊΠ°ΠΊΠΈΠΌΠΈ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° провСдСния, Π»ΠΈΠ±ΠΎ доТдСтся Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π­Ρ‚ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ появлСниС «грязных» Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΎΡ‚Ρ‡Π΅Ρ‚Π°Ρ….

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ изоляции Π² Π‘Π£Π‘Π” ΠΈ Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π’ 1Π‘ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ часто происходит Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…. БистСма сама Ρ€Π΅ΡˆΠ°Π΅Ρ‚, ΠΊΠ°ΠΊΠΈΠ΅ записи Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ, Π½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° этот процСсс Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ΄.

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ€Π΅ΠΆΠΈΠΌ монопольной Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° это Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это сущСствСнно сниТаСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ систСмы Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅.

Π”ΠΎΠ»Π³ΠΎΠ²Π΅Ρ‡Π½ΠΎΡΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ послС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π½Π° дискС ΠΈ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ потСряны Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠΌ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ питания сСрвСра. Π–ΡƒΡ€Π½Π°Π» Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π‘Π£Π‘Π” ΠΈΠ³Ρ€Π°Π΅Ρ‚ здСсь ΠΊΠ»ΡŽΡ‡Π΅Π²ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ, фиксируя ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π΄ Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ.

Бинтаксис ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ€Π΅ΠΆΠΈΠΌΠΎΠΌ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ

Для явного управлСния процСссом Π² языкС 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ сущСствуСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°. Она ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ. Бинтаксис ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎ прост, Π½ΠΎ Π΅Π³ΠΎ использованиС Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ строгого соблюдСния ΠΏΡ€Π°Π²ΠΈΠ» влоТСнности.

Вранзакция();

// Π—Π΄Π΅ΡΡŒ выполняСтся ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹ΠΌ

Вранзакция();

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ. ВсС ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ записи Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Π² этот контСкст. Π’Ρ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹Π·ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ ΠΈ фиксируСт измСнСния. Если Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ этими Π²Ρ‹Π·ΠΎΠ²Π°ΠΌΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ошибка выполнСния, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° автоматичСски Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ ΠΎΡ‚ΠΊΠ°Ρ‚ всСх ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

БущСствуСт Π²Π°ΠΆΠ½ΠΎΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅: нСльзя ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ, Ссли прСдыдущая Π΅Ρ‰Π΅ Π½Π΅ Π·Π°ΠΊΡ€Ρ‹Ρ‚Π°. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС выполнСния. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ структурирован Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ². Часто для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°...Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Никогда Π½Π΅ выполняйтС Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ вычислСния ΠΈΠ»ΠΈ запросы ΠΊ внСшним рСсурсам Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. Π­Ρ‚ΠΎ ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ записСй слишком Π΄ΠΎΠ»Π³ΠΎ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Β«ΠΏΠΎΠ²Π΅ΡΠΈΡ‚ΡŒΒ» Ρ€Π°Π±ΠΎΡ‚Ρƒ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.
πŸ“Š Π‘Ρ‚Π°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡŒ Π»ΠΈ Π²Ρ‹ с ошибками Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ Π² 1Π‘?
Π”Π°, часто
Иногда
НСт, Π½ΠΈΠΊΠΎΠ³Π΄Π°
НС знаю, Ρ‡Ρ‚ΠΎ это

ΠŸΡ€ΠΈ использовании встроСнного языка Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ области видимости Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. Она дСйствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ сСанса. Если ваш ΠΊΠΎΠ΄ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ внСшниС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ»ΠΈ Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Π΅ задания, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… контСкстах, Π³Π΄Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° транзакционности Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ½Ρ‹ΠΌΠΈ.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок ΠΈ ΠΎΡ‚ΠΊΠ°Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

Главная сила Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ раскрываСтся ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ситуаций. Π’ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ бизнСсС часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ошибки: ΠΎΡ‚ нСдостатка ΠΏΡ€Π°Π² доступа Π΄ΠΎ тСхничСских сбоСв сСти. ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΎΡ‚ΠΊΠ°Ρ‚Π° позволяСт Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π±Π°Π·Ρƒ Π² исходноС состояниС Π±Π΅Π· Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° администратора.

Для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ стандартный шаблон ΠΊΠΎΠ΄Π°. Он Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ критичСском сбоС транзакция Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Π·Π°ΠΊΡ€Ρ‹Ρ‚Π° ΠΈΠ»ΠΈ ΠΎΡ‚ΠΌΠ΅Π½Π΅Π½Π°. Π­Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ зависаниС Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π‘Π£Π‘Π”.

Вранзакция();

ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°

// Π›ΠΎΠ³ΠΈΠΊΠ° измСнСния Π΄Π°Π½Π½Ρ‹Ρ…

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ();

Вранзакция(); // Ѐиксация

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Вранзакция(); // ΠžΡ‚ΠΊΠ°Ρ‚

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Ошибка: " + ОписаниСОшибки());

ΠšΠΎΠ½Π΅Ρ†ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠΈ;

Π’ Π±Π»ΠΎΠΊΠ΅ Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Вранзакция() выполняСт Ρ€ΠΎΠ»ΡŒ ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ всСх ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, сдСланных с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° открытия. Π­Ρ‚ΠΎ критичСски Π²Π°ΠΆΠ½ΠΎ для финансовых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Π³Π΄Π΅ ошибка Π² ΠΊΠΎΠΏΠ΅ΠΉΠΊΡƒ нСдопустима.

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° бСзопасности Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 4

Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΡ‚ΠΊΠ°Ρ‚ влияСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° измСнСния Π΄Π°Π½Π½Ρ‹Ρ…. Он Π½Π΅ отмСняСт дСйствия, ΡƒΠΆΠ΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹Π΅ Π²ΠΎ внСшнСм ΠΌΠΈΡ€Π΅. НапримСр, Ссли Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π²Ρ‹ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ»ΠΈ email ΠΈΠ»ΠΈ ΠΎΠΏΠ»Π°Ρ‚ΠΈΠ»ΠΈ счСт Ρ‡Π΅Ρ€Π΅Π· Π±Π°Π½ΠΊ-ΠΊΠ»ΠΈΠ΅Π½Ρ‚, эти дСйствия Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΌΠ΅Π½Π΅Π½Ρ‹ автоматичСски ΠΏΡ€ΠΈ ошибкС Π² 1Π‘.

ВлияниС Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ

ИспользованиС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ ограничСния Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ систСмы. Π§Π΅ΠΌ дольшС длится транзакция, Ρ‚Π΅ΠΌ большС записСй остаСтся Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ для Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ Π½Π° запись ΠΈ сущСствСнному замСдлСнию Ρ€Π°Π±ΠΎΡ‚Ρ‹ всСй Ρ„ΠΈΡ€ΠΌΡ‹.

ΠžΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Π°Ρ стратСгия Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. Π’Π΅ΡΡŒ ΠΊΠΎΠ΄, Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠΉ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ атомарности (Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ справочников, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ‡Π°Ρ‚Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌ, слоТныС вычислСния), Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Π±Π»ΠΎΠΊΠ° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ.

Π’ΠΈΠΏ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ Риск Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ
Π§Ρ‚Π΅Π½ΠΈΠ΅ справочников Π‘Π΅Π· Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Низкий
ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Вранзакция Π‘Ρ€Π΅Π΄Π½ΠΈΠΉ
МассовоС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Ρ†Π΅Π½ Вранзакция (ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ) Высокий
Π€ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡ‚Ρ‡Π΅Ρ‚Π° Π‘Π΅Π· Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Низкий

ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ слСдуСт ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ массовым опСрациям. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ тысячи записСй, Π΄Π΅Π»Π°Ρ‚ΡŒ это Π² ΠΎΠ΄Π½ΠΎΠΉ гигантской Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ β€” плохая идСя. Π›ΡƒΡ‡ΡˆΠ΅ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ процСсс Π½Π° нСбольшиС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, фиксируя измСнСния послС ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ записСй.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ Π²Π·Π°ΠΈΠΌΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ?

Взаимная Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° (deadlock) Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° Π΄Π²Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΆΠ΄ΡƒΡ‚ рСсурсы, Π·Π°Ρ…Π²Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³ΠΎΠΌ. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π΄Π΅Ρ€ΠΆΠΈΡ‚ запись А ΠΈ ΠΆΠ΄Π΅Ρ‚ Π‘, Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π΄Π΅Ρ€ΠΆΠΈΡ‚ Π‘ ΠΈ ΠΆΠ΄Π΅Ρ‚ А. БистСма 1Π‘ ΠΈΠ»ΠΈ Π‘Π£Π‘Π” Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Π° ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈΠ· Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ.

Анализ ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ² рСгистрации ΠΈ Ρ‚Π°Π±Π»ΠΈΡ† Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ Π‘Π£Π‘Π” ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π²Ρ‹ΡΠ²Π»ΡΡ‚ΡŒ ΡƒΠ·ΠΊΠΈΠ΅ мСста. Часто ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° кроСтся Π½Π΅ Π² самом ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, Π° Π² Π½Π΅ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΌ порядкС доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π² ΠΊΠΎΠ΄Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Π’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π² распрСдСлСнных ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Π±Π°Π·Π°Ρ…

Π’ распрСдСлСнных систСмах, Π³Π΄Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ нСсколькими ΡƒΠ·Π»Π°ΠΌΠΈ, Ρ€Π°Π±ΠΎΡ‚Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ услоТняСтся. ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ 1Π‘ обСспСчиваСт ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π΅, Π½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² локальной Π±Π°Π·Π΅.

ΠŸΡ€ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΡƒΠ·Π΅Π» распрСдСлСнной Π±Π°Π·Ρ‹ транзакция Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½Π°Π±ΠΎΡ€ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ. Если Π² процСссС ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ сбой, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π°Ρ сторона Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ частично Π²Ρ‹Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ Ρ€Π°ΡΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡŽ остатков.

Однако, Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π² распрСдСлСнной срСдС ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΡƒΠ·Π΅Π» Π±ΡƒΠ΄Π΅Ρ‚ нСдоступСн для Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄ΠΎΠ»Π³ΠΎΠ΅ врСмя. Π­Ρ‚ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ планирования Ρ€Π΅Π³Π»Π°ΠΌΠ΅Π½Ρ‚Π½Ρ‹Ρ… Π·Π°Π΄Π°Π½ΠΈΠΉ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ провСдСния синхронизации.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ свои особСнности Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ. ВсСгда ΡΠ²Π΅Ρ€ΡΠΉΡ‚Π΅ΡΡŒ с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π£Π’, ERP, Π‘ΠŸ), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π»ΠΎΠ³ΠΈΠΊΠ° провСдСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ скрыта Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ±Ρ‰ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ распрСдСлСнных Π±Π°Π· слСдуСт ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ сСтСвыС Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² локальной сСти Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ, ΠΏΡ€ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π΅ Ρ‡Π΅Ρ€Π΅Π· ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ сСкунды, увСличивая врСмя удСрТания Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ.

ЧастыС ошибки Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с транзакциями

Одной ΠΈΠ· самых распространСнных ошибок являСтся Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π΄Ρ€ΡƒΠ³ Π² Π΄Ρ€ΡƒΠ³Π°. Как ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Ρ€Π°Π½Π΅Π΅, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ рСкурсивныС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΡƒΠΆΠ΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС выполнСния скрипта.

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° β€” Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ запросов Π½Π° Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ… Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ с Ρ†Π΅Π»ΡŒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ записи. Если ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ΠΌ ΠΈ записью Π΄Π°Π½Π½Ρ‹Π΅ измСнятся Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ вСрсий. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ запроса.

Π—Π°Π±Ρ‹Π²Π°ΡŽΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ запись Π² рСгистры свСдСний с ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ «НСограничСнная», ΠΌΠΎΠ³ΡƒΡ‚ вСсти сСбя спСцифично Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ большого объСма историчСских Π΄Π°Π½Π½Ρ‹Ρ….

πŸ’‘

Π—ΠΎΠ»ΠΎΡ‚ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ: транзакция Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ максимально ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠΉ. Всё, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ вынСсти Π·Π° Π΅Ρ‘ ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ (Ρ‡Ρ‚Π΅Π½ΠΈΠ΅, расчСты, Π²Ρ‹Π²ΠΎΠ΄ Π½Π° экран), Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ вынСсСно.

НСкоррСктная ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Ρ‚Π°ΠΊΠΆΠ΅ часто ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ транзакция остаСтся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ. Π­Ρ‚ΠΎ «висячиС» Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‚ рСсурсы Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Ρ€Π°Π·Ρ€Ρ‹Π²Π° соСдинСния с сСрвСром ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ слуТбы.

МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ Π² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅?

НСт, ΠΊΠΎΠΌΠ°Π½Π΄Π° Вранзакция() доступна Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² модулях ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠ±Ρ‰ΠΈΡ… модулях ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ…. Π’ ΠΊΠΎΠ΄Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ интСрфСйса ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‘ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ нСльзя, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ„ΠΎΡ€ΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² клиСнтском контСкстС, Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Π½Π° сСрвСрС.

Π§Ρ‚ΠΎ происходит с Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ послС ΠΎΡ‚ΠΊΠ°Ρ‚Π°?

ΠŸΡ€ΠΈ ΠΎΡ‚ΠΊΠ°Ρ‚Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ всС Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ, установлСнныС Π² Π΅Ρ‘ Ρ€Π°ΠΌΠΊΠ°Ρ…, ΡΠ½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ. Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ доступ ΠΊ этим Π΄Π°Π½Π½Ρ‹ΠΌ. Однако, Ссли ΠΎΡ‚ΠΊΠ°Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ΅Π» ΠΈΠ·-Π·Π° Π²Π·Π°ΠΈΠΌΠ½ΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ, систСма ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

ВлияСт Π»ΠΈ транзакция Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ записи ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°?

Для ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° влияниС минимально. overhead (Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы) Π½Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π½ΠΈΡ‡Ρ‚ΠΎΠΆΠ½Ρ‹ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ физичСской записи Π½Π° диск. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ высокой ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ†ΠΈΠΈ Π·Π° ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ рСсурсы.

НуТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ ΠΏΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…?

НСт, для чтСния Π΄Π°Π½Π½Ρ‹Ρ… транзакция Π½Π΅ трСбуСтся ΠΈ Π΄Π°ΠΆΠ΅ Π²Ρ€Π΅Π΄Π½Π°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Ρ‡Ρ‚Π΅Π½ΠΈΡŽ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ… (Π² зависимости ΠΎΡ‚ уровня изоляции) ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ΅ чтСния Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ. Π§Ρ‚Π΅Π½ΠΈΠ΅ Π² 1Π‘ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ согласовано.