Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Firebird Π Π£ΠšΠžΠ’ΠžΠ”Π‘Π’Π’Πž Π ΠΠ—Π ΠΠ‘ΠžΠ’Π§Π˜ΠšΠ БАЗ ДАННЫΠ₯Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 122

Автор Π₯Π΅Π»Π΅Π½ Π‘ΠΎΡ€Ρ€ΠΈ

ΠŸΡ€ΠΎΡ†Π΅ΡΡ выполнСния Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ

К настоящСму ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ Ρƒ вас ΡƒΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ чувство увСрСнности ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ Π²ΠΈΠ΄Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ систСмы, ΠΊΠ°ΠΊ сСрии Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π² транзакциях. Π—Π°Π΄Π°Ρ‡ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹, ΠΊΠΎΠ³Π΄Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ ΠΈΡ… Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‚. Помимо конфигурирования Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ для задания Π·Π°Π΄Π°Ρ‡Π΅ условий доступа, изоляции ΠΈ способа Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ, ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ возмоТности для взаимодСйствия с Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠ΅ΠΉ Π² процСссС Π΅Π΅ выполнСния. На рис. 27.1 ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ этого взаимодСйствия. Π’ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π°Π·Π΄Π΅Π»Π°Ρ… настоящСй Π³Π»Π°Π²Ρ‹ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° ΠΈ рСализация Ρ‚Π°ΠΊΠΈΡ… Π·Π°Π΄Π°Ρ‡.

Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ

Π’ Firebird Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ всСгда Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‚ΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ. НСкоторыС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π‘Π£Π‘Π” ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈΠ· Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ для управлСния транзакциями ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π΄Π²ΡƒΡ…Ρ„Π°Π·Π½ΡƒΡŽ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ. ВмСсто этого Firebird прСдоставляСт Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π±Π΅Π· Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ атомарности. Π”Π²Π° ΠΈΠ· этих ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ², Π±Π»ΠΎΠΊΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΈ выполняСмыС строки, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ ΠΏΠΎ использованию Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² модулях PSQL ΠΈ ΠΎΠ±ΡΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ Π² части VII. Π”Ρ€ΡƒΠ³ΠΈΠΌ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ, нСдоступным Π² PSQL, ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ сохранСния.


Рис. 27.1. ВзаимодСйствиС прилоТСния ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ


! ! !

ΠŸΠ Π˜ΠœΠ•Π§ΠΠΠ˜Π•. ВыполняСмыС строки ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ сохранСния ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½ΠΎΠ²Ρ‹ΠΌΠΈ возмоТностями, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Π² язык Π² Firebird 1.5.

. ! .


ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ сохранСния

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ‚ΠΎΡ‡Π΅ΠΊ сохранСния (user savepoints), Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ транзакциями, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Π°ΠΌ "ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ" Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Ρ‚ΡŒ ΠΈΡ…, Ссли пСрСсылка Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… Π±Ρ‹Π»Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ. Если ΠΏΠΎΠ·ΠΆΠ΅ Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π·Π°Π΄Π°Ρ‡ появится ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, транзакция ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΡ‚ΠΊΠ°Ρ‚ ΠΊ послСднСй Ρ‚ΠΎΡ‡ΠΊΠ΅ сохранСния. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ Π² Π±Π°Π·Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ этой Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ сохранСния ΠΈ возникшим ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ, Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΌΠ΅Π½Π΅Π½Ρ‹, Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²ΠΊΡƒ, ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅, ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΎΡ‚ΠΊΠ°Ρ‚, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ - Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ трСбуСтся ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.


Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ‚ΠΎΡ‡Π΅ΠΊ сохранСния

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ сохранСния ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ клиСнтской стороны, доступной Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°Ρ… DSQL.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ создания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ сохранСния являСтся:


SAVEPOINT <ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€>;


Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ SQL Firebird (максимум 31 Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎ-Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ символ ASCII, ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π² Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ). Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π½ΠΎΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, ΠΎΠ½ ΠΏΠ΅Ρ€Π΅ΠΊΡ€ΠΎΠ΅Ρ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ сохранСния, ΡΠ²ΡΠ·Π°Π½Π½ΡƒΡŽ с этим ΠΈΠΌΠ΅Π½Π΅ΠΌ.


Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π½Π° Ρ‚ΠΎΡ‡ΠΊΡƒ сохранСния

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ (ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ°Ρ‚, rollback) Π½Π° Ρ‚ΠΎΡ‡ΠΊΡƒ сохранСния начинаСтся с ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ всСй Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΉ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎΠΉ Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… послС создания этой Ρ‚ΠΎΡ‡ΠΊΠΈ сохранСния. Указанная Ρ‚ΠΎΡ‡ΠΊΠ° сохранСния ΠΈ всС ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π΅ΠΉ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ. Π›ΡŽΠ±Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ сохранСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ созданы послС ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ сохранСния, ΠΏΡ€ΠΎΠΏΠ°Π΄Π°ΡŽΡ‚.

Π›ΡŽΠ±Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ (явныС ΠΈ нСявныС), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ установлСны с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° создания ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ сохранСния, Π±ΡƒΠ΄ΡƒΡ‚ сняты. ΠŸΡ€ΠΈ этом Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΏΡ€ΠΈ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ доступа ΠΊ освобоТдСнным строкам, всС Π΅Ρ‰Π΅ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ ΠΊ Π½ΠΈΠΌ доступ, ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ тСкущая транзакция. Π­Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΠ΅ Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Ρ‹ Π½Π΅ ΠΏΠΎΠ²Π»ΠΈΡΡŽΡ‚ Π½Π° ΠΏΠΎΡ‚ΠΎΠΊ Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½. ВсС это Π½Π΅ повлияСт Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ Π² состоянии оТидания Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΡ‚ΠΊΠ°Ρ‚Π°.

Π’ΠΎΡ‚ шаблон синтаксиса для ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° Ρ‚ΠΎΡ‡ΠΊΡƒ сохранСния:


ROLLBACK [WORK] ВО [SAVEPOINT] <ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€>;


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


ОсвобоТдСниС Ρ‚ΠΎΡ‡Π΅ΠΊ сохранСния

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


SAVEPOINT:

RELEASE SAVEPOINT <ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€> [ONLY];


Π‘Π΅Π· ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова ONLY указанная Ρ‚ΠΎΡ‡ΠΊΠ° сохранСния ΠΈ всС Ρ‚ΠΎΡ‡ΠΊΠΈ сохранСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ созданы послС Π½Π΅Π΅, Π±ΡƒΠ΄ΡƒΡ‚ освобоТдСны ΠΈ потСряны. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ONLY для освобоТдСния Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ сохранСния.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ‚ΠΎΡ‡Π΅ΠΊ сохранСния:


CREATE TABLE SAVEPOINT_TEST (ID INTEGER);

COMMIT;

INSERT INTO SAVEPOINT_TEST

VALUES(99);

COMMIT;

INSERT INTO SAVEPOINT_TEST

VALUES(100) ;

/**/

SAVEPOINT SP1;

/**/

DELETE FROM SAVEPOINT_TEST;

SELECT * FROM SAVEPOINT_TEST; /* Π½Π΅ Π²Π΅Ρ€Π½Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ */

/**/

ROLLBACK TO SP1;

/**/

SELECT * FROM SAVEPOINT_TEST; /* Π²Π΅Ρ€Π½Π΅Ρ‚ 2 строки */

ROLLBACK;

/**/

SELECT * FROM SAVEPOINT_TEST;

/* Π²Π΅Ρ€Π½Π΅Ρ‚ ΠΎΠ΄Π½Ρƒ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Π½ΡƒΡŽ строку */


Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ сохранСния

Когда ядро сСрвСра выполняСт ΠΎΡ‚ΠΊΠ°Ρ‚, Π΅Π³ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ Ρ‚ΠΎΡ‡ΠΊΠ° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для отмСняСмой Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ссылаСтся Π½Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ сохранСния, Π½Π°Ρ…ΠΎΠ΄ΡΡ‰ΡƒΡŽΡΡ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ Π°Π²Ρ‚ΠΎΠΎΡ‚ΠΌΠ΅Π½Ρ‹ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти. ΠŸΡ€ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ ΠΎΡ‚ΠΊΠ°Ρ‚Π° ΠΎΠ½ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ. ЦСлью этой стратСгии являСтся сокращСниС количСства мусора, ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΎΡ‚ΠΊΠ°Ρ‚Π°ΠΌΠΈ.

Когда объСм ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ сохранСния Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, становится большим - Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΡ‚ 10 000 Π΄ΠΎ 1 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π° строк - ядро сСрвСра ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Π°Π²Ρ‚ΠΎΠΎΡ‚ΠΌΠ΅Π½Ρ‹ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ссылки Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΠ· глобального ΠΎΠ±Ρ€Π°Π·Π° состояния Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ (TSB). Если Ρƒ вас Π΅ΡΡ‚ΡŒ транзакция, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ†Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с большим количСством ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ вСдСния ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Π°Π²Ρ‚ΠΎΠΎΡ‚ΠΌΠ΅Π½Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ ΡƒΡ‚Π΅Ρ‡ΠΊΡƒ потрСбляСмых рСсурсов, которая появится, Ссли ваш сСрвСр Ρ€Π΅ΡˆΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ см. Π² Ρ€Π°Π·Π΄. "ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Π°Π²Ρ‚ΠΎΠΎΡ‚ΠΌΠ΅Π½Ρ‹" Ρ€Π°Π½Π΅Π΅ Π² этой Π³Π»Π°Π²Π΅.


PSQL
Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ

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

ЛогичСский контСкст

ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ способ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ ΠΌΠ΅ΠΆΠ΄Ρƒ START TRANSACTION ΠΈ COMMIT ΠΈΠ»ΠΈ ROLLBACK - это ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Π½Π΅Π΅ ΠΊΠ°ΠΊ Π½Π° ΡΠ΅Ρ€ΠΈΡŽ клиСнтских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈ взаимодСйствий ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ сСрвСра, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ Π·Π°Π΄Π°Ρ‡Ρƒ. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ полСзная модСль для понимания Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ транзакция создаСт ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΡƒ для Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π­Ρ‚Π° модСль Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ.

Π‘ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния "Π·Π°Π΄Π°Ρ‡Π°" Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ START TRANSACTION ΠΈ COMMIT. Π•Π³ΠΎ Π·Π°Π΄Π°Ρ‡Π° ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π°Ρ‡Π°Π»ΠΎ, сСрСдину ΠΈ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ мноТСство Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ. НапримСр, ошибки ΠΏΡ€ΠΈ пСрСсылкС ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΏΠΎΠ²Π»Π΅ΠΊΡƒΡ‚ Π·Π° собой ΠΎΡ‚ΠΊΠ°Ρ‚ для Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ физичСской Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. НСкоторыС Π²ΠΈΠ΄Ρ‹ Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π² ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡŽ логичСской Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈΠ»ΠΈ Π² Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΌ случаС ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΎΠΉ физичСской Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ для Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ логичСской Π·Π°Π΄Π°Ρ‡ΠΈ.

Одна физичСская транзакция ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ мноТСство дискрСтных ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π·Π°Π΄Π°Ρ‡, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… логичСскоС "Ρ†Π΅Π»ΠΎΠ΅", Ρ‡Ρ‚ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ атомарности Π΅Π΄ΠΈΠ½ΠΎΠΉ физичСской Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. Π”Ρ€ΡƒΠ³ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚- типичная Π·Π°Π΄Π°Ρ‡Π° "ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ…" - выполняСт ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½Ρ‹Π΅ повторСния ΠΏΠΎΡ…ΠΎΠΆΠ΅ΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹Π΅ Π²Π½ΡƒΡ‚Ρ€ΡŒ ΠΎΠ΄Π½ΠΎΠΉ физичСской Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ для сокращСния количСства Π½Π°ΠΆΠ°Ρ‚ΠΈΠΉ клавиш ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΈ соотвСтствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ трСбованиям выполнСния Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Подводя ΠΈΡ‚ΠΎΠ³, логичСская Π·Π°Π΄Π°Ρ‡Π° - это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΊΠ°ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΊ Ρ‡Π΅ΠΌΡƒ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ - ΠΏΠΎΡ‡Ρ‚ΠΈ всСгда Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Π³Ρ€Π°Π½ΠΈΡ† START TRANSACTION ΠΈ COMMIT. ЀизичСская транзакция ΠΏΡ€ΠΈ этом являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ логичСского контСкста.

Двумя ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌΠΈ Ρ„Π°ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ логичСского контСкста Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ:

* ΠΊΠ°ΠΊ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ физичСский контСкст Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ послС ROLLBACK, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π΅ ΠΏΡ€ΠΎΠΏΠ°Π»Π°, ΠΊΠΎΠ³Π΄Π° сСрвСр ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ доступ;

* Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли ΠΏΠΎΡ‚ΠΎΠΊ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Ρ€Π²Π°Π½ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ - ΠΊΠ°ΠΊ Π΄ΠΈΠ°Π³Π½ΠΎΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΡΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

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