ΠΠΎΠ½ΡΠ»ΠΈΠΊΡΡ, ΠΎ ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ΄Π΅Ρ ΡΠ΅ΡΡ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΊΠ°ΠΊ Π² ΡΠ»ΡΡΠ°Π΅ ΡΡΠ΅Π½ΠΈΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ, ΡΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Π·Π°ΠΏΠΈΡΠΈ. ΠΠ° ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ ΠΏΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΉ, ΠΏΠΎΠΌΠΈΠΌΠΎ wait/nowait, Π²Π»ΠΈΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΡΠΎΠ²Π½Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ, ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΈΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΏΡΠΎ ΡΡΠΎΠ²Π½ΠΈ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ. Π Π²ΠΎΡ Π½Π° ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ Π²Π»ΠΈΡΠ½ΠΈΡ ΡΠ΅ΠΆΠΈΠΌΠ° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π½Π° ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ ΠΏΡΠΈ Π·Π°ΠΏΠΈΡΠΈ ΡΡΠΎΠ²Π΅Π½Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ Π½Π΅ Π²Π»ΠΈΡΠ΅Ρ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΡΠ΅ΠΉΡΠ°Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΅Π³ΠΎ.
* Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ»ΡΡΠ°ΠΉ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π Π²ΡΡΠ°Π²Π»ΡΠ΅Ρ Π·Π°ΠΏΠΈΡΡ, Π½ΠΎ Π΅ΡΠ΅ Π½Π΅ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΠ»Π° Π΅Π΅. ΠΠ°ΡΠ΅ΠΌ Π² ΡΠ°ΠΌΠΊΠ°Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π, Π΄Π΅Π»Π°Π΅ΡΡΡ ΠΏΠΎΠΏΡΡΠΊΠ° Π²ΡΡΠ°Π²ΠΈΡΡ Π·Π°ΠΏΠΈΡΡ Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΡΠ°ΠΌΡΠΌ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ, ΡΠΆΠ΅ Π²ΡΡΠ°Π²Π»Π΅Π½Π° Π² ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π. ΠΠΎΡ Π·Π΄Π΅ΡΡ ΠΈ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ ΠΎΡΠ»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΠΆΠΈΠΌΠ°ΠΌΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ:
* Π΅ΡΠ»ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π Π·Π°ΠΏΡΡΠ΅Π½Π° Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ wait, ΡΠΎ ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ ΠΎΠΆΠΈΠ΄Π°ΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π, ΠΈ Π΅ΡΠ»ΠΈ Π Π·Π°Π²Π΅ΡΡΠΈΡΡΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ (commit), ΡΠΎ Π²ΡΡΠ°Π²Π»Π΅Π½Π½Π°Ρ Π² Π Π·Π°ΠΏΠΈΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ·Π½Π°Π½Π° Π½Π΅Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ° Deadlock, Π° Π΅ΡΠ»ΠΈ ΠΎΠ½Π° ΠΎΡΠΊΠ°ΡΠΈΡΡΡ (rollback), ΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠ½ΡΡΡ ΠΈ ΠΎΠ½Π° ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΡ ΠΈΡ (Ρ. Π΅. ΡΠ΄Π΅Π»Π°ΡΡ commit);
* Π΅ΡΠ»ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π Π·Π°ΠΏΡΡΠ΅Π½Π° Π² nowait, ΡΠΎ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ° 'lock conflict on no wait transaction'.
* Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ»ΡΡΠ°ΠΉ: ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»Π° Π·Π°ΠΏΠΈΡΡ, Π½ΠΎ Π΅ΡΠ΅ Π½Π΅ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΠ»Π° Π΅Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π ΠΏΡΡΠ°Π΅ΡΡΡ ΡΠ΄Π°Π»ΠΈΡΡ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΡΡ ΠΆΠ΅ ΡΠ°ΠΌΡΡ Π·Π°ΠΏΠΈΡΡ. ΠΠΏΡΡΡ Π²Π»ΠΈΡΠ΅Ρ ΡΠ΅ΠΆΠΈΠΌ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ:
* Π΅ΡΠ»ΠΈ Π Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ wait, ΡΠΎ ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ ΠΆΠ΄Π°ΡΡ ΠΏΠΎΠΊΠ° Π Π½Π΅ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΡΡ ΠΈΠ»ΠΈ Π½Π΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡΡ; Π΅ΡΠ»ΠΈ Π ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΡΡ, ΡΠΎ Π² Π Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ° 'Deadlock - update conflict with concurrent update', - ΠΏΠΎΡΠΎΠΌΡ ΠΊΠ°ΠΊ Π ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΠ»Π° ΡΠ²ΠΎΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π ΠΏΡΠΈΠ·Π½Π°ΡΡΡΡ Π½Π΅Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ; Π΅ΡΠ»ΠΈ ΠΆΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π ΠΎΡΠΊΠ°ΡΠΈΡΡΡ, Π ΠΏΠΎΠ»ΡΡΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΡΡΡ;
* Π΅ΡΠ»ΠΈ Π Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ nowait, ΡΠΎ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ° 'lock conflict on no wait transaction'.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π΅ΡΡΠ½Π° ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ΅Π½Π½ΠΎΡΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΉ ΡΠ΅ΠΆΠΈΠΌΠ° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΡΡ Π½ΠΈΠΆΠ΅ ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½ΡΡΡ ΡΡΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π½ΡΡ Π½Π°Π±ΠΎΡΠΎΠ² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π΄Π»Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ Π² ΡΠΈΠΏΠΈΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ .
ΠΡ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ, ΡΡΠΎ Π² ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΈ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΡΠΈΠ³ΡΡΠΈΡΡΠ΅Ρ ΡΠ»ΠΎΠ²ΠΎ "deadlock", ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ ΡΠ»ΠΎΠ²ΠΎ Π²ΡΠ±ΡΠ°Π½ΠΎ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΠ΄Π°ΡΠ½ΠΎ. Π ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π΅ Ρ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ³ΠΎ ΠΎΠ½ΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ "ΠΌΠ΅ΡΡΠ²Π°Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°", ΠΈΠ»ΠΈ "Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°". Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° Π³ΡΠΎΠ·Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ.
Π§ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΊΠΎΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ?
ΠΠ·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°
ΠΠ·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° - ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ΅ΡΡΡΡΡ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ° ΠΊΠΎΠ½ΠΊΡΡΠΈΡΡΡΡΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ. ΠΠ»Ρ ΠΈΠ»Π»ΡΡΡΡΠ°ΡΠΈΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΄Π²Π΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π’1 ΠΈ Π’2
ΠΈ Π΄Π²Π° ΡΠ΅ΡΡΡΡΠ° - Π ΠΈ Π; Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡΠ° ΠΎ Π±Π°Π·Π°Ρ Π΄Π°Π½Π½ΡΡ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π°ΠΏΠΈΡΠΈ Π² Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅. ΠΠΎΠΏΡΡΡΠΈΠΌ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠ°ΠΊΠ°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ:
* Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π’1 Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ ΡΠ΅ΡΡΡΡ Π, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π±Π»Π°Π³ΠΎΠΏΠΎΠ»ΡΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ Π½ΠΈΠΌ.
* Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π’2 Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ ΡΠ΅ΡΡΡΡ Π, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΡΠ°ΠΊΠΆΠ΅ Ρ Π½ΠΈΠΌ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
* Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π’1 ΠΆΠ΅Π»Π°Π΅Ρ ΠΏΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ΅ΡΡΡΡΠΎΠΌ Π, Π΄Π»Ρ ΡΠ΅Π³ΠΎ ΠΎΠ½Π° ΠΏΡΡΠ°Π΅ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½Π° Π½Π΅Π³ΠΎ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² ΡΡΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ΅ΡΡΡΡ Π ΡΠΆΠ΅ Π·Π°Π½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠ΅ΠΉ Π, ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π’1 Π²Ρ ΠΎΠ΄ΠΈΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ.
* Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π’2 ΠΆΠ΅Π»Π°Π΅Ρ ΠΏΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ΅ΡΡΡΡΠΎΠΌ Π, ΠΏΡΡΠ°Π΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π΅Π³ΠΎ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ.
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ ΠΏΠ΅ΡΠ°Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ: ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΠ°Π½ΡΠ° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΡΠ²ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π½Π°ΠΌΠ΅ΡΡΠ²ΠΎ Π±Π»ΠΎΠΊΠΈΡΡΡΡ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π°. ΠΡΠ±ΠΎΠΉ ΡΠ΅ΡΠ²Π΅Ρ Π±Π°Π· Π΄Π°Π½Π½ΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΏΠΎΡΠΎΠ±Π΅Π½ Π²ΡΡ ΠΎΠ΄ΠΈΡΡ ΠΈΠ· ΡΡΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΏΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄ΠΎΡΡΠΎΠΉΠ½ΠΎ, ΠΈ InterBase Π½Π΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ΅ΡΠ°Π΅ΡΡΡ Π²ΡΠ±ΠΎΡΠΎΠΌ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΆΠ΅ΡΡΠ²Ρ ΠΈ Π΅Π΅ ΠΎΡΠΊΠ°ΡΠ΅, ΠΏΡΠΈ ΡΡΠΎΠΌ Π΄ΡΡΠ³Π°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡΡ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ°.
ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π² InterBase Π½Π΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΡΡΠ°Π·Ρ ΠΏΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°, ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ ΠΈΠ· ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π²ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ DEADLOCK_TIMEOUT Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ InterBase ibconfig, ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ Π½Π° ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Π ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΊΡΠ°ΠΉΠ½Π΅ ΡΠ΅Π΄ΠΊΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ ΡΡΠΎΠΈΡ ΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ Π²Π°ΠΌ ΡΠ°ΠΊ ΠΏΠΎΠ²Π΅Π·Π»ΠΎ, ΡΠ²ΠΈΠ΄Π΅Π² ΡΠ»ΠΎΠ²ΠΎ "deadlock" Π² ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΈ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅. Π‘ΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ ΡΡΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ.
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π»ΠΈΡΡΡ Π½Π° ΡΡΠΎΠ²Π½ΠΈ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΡΠΎΠ²Π½Π΅ΠΉ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ
ΠΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π±ΡΠ»ΠΎ ΡΠΏΠΎΠΌΡΠ½ΡΡΠΎ Π²ΡΡΠ΅, ΡΡΠΎΠ²Π΅Π½Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠ΄Π΅Π»Π°Π½Π½ΡΠ΅ Π² Π΄ΡΡΠ³ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡ , ΠΌΠΎΠΆΠ΅Ρ Π²ΠΈΠ΄Π΅ΡΡ Π΄Π°Π½Π½Π°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ.
ΠΠ°ΠΊ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ "Π£ΡΠΎΠ²Π½ΠΈ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ", Π² InterBase Π΅ΡΡΡ 3 ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΡΠΎΠ²Π½Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ. Π’Π΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ, ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ΅ DIRTY READ - "Π³ΡΡΠ·Π½ΠΎΠ΅ ΡΡΠ΅Π½ΠΈΠ΅". Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Ρ ΡΡΠΎΠ²Π½Π΅ΠΌ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ DIRTY READ ΠΌΠΎΠ³ΡΡ ΡΠΈΡΠ°ΡΡ Π½Π΅ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² Π΄ΡΡΠ³ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡ . Π InterBase ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅Π»ΡΠ·Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Ρ ΡΠ°ΠΊΠΈΠΌ ΡΡΠΎΠ²Π½Π΅ΠΌ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ, Ρ ΠΎΡΡ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ²Π΅ΡΡΠΈΠΎΠ½Π½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΌΠΎΠ³Π»Π° Π±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΠ°ΠΊΠΎΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΡΠ΅Π°Π»ΡΠ½ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌ Π² InterBase ΡΡΠΎΠ²Π½ΡΠΌ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ. Π‘Π½Π°ΡΠ°Π»Π° ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠΎΠ²Π΅Π½Ρ Read Committed, Π·Π°Π΄Π°ΡΡΠΈΠΉΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠΎΠΉ read_committed. Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ, Π·Π°ΠΏΡΡΠ΅Π½Π½Π°Ρ Ρ ΡΠ°ΠΊΠΈΠΌ ΡΡΠΎΠ²Π½Π΅ΠΌ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ, ΠΌΠΎΠΆΠ΅Ρ ΡΠΈΡΠ°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π½ΡΠ΅ ΠΈΠ· ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΡ ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ.
ΠΡΠΎΡ ΡΡΠΎΠ²Π΅Π½Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ°ΠΌΠΎΠ³ΠΎ "ΡΠ²Π΅ΠΆΠ΅Π³ΠΎ" ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ 1.4, ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π΄Π²Π΅ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΠΈ ΡΡΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ: read_committed rec_version ΠΈ read_committed no_rec_version. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²Π°ΡΠΈΠ°Π½Ρ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ rec_version. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π·Π°ΠΏΠΈΡΠΈ ΠΏΡΠΎΡΡΠΎ ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ , Π·Π°ΠΏΠΈΡΠΈ.
ΠΠ°ΡΠΈΠ°Π½Ρ Ρ no_rec_version Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ΅Π½ Π΄Π»Ρ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΡ. ΠΠΎΠΎΠ±ΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, ΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΠ²Π½Ρ read_committed Ρ ΠΎΠΏΡΠΈΠ΅ΠΉ no_rec_version ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ ΡΠΎΠΌΡ, "ΡΡΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π±ΡΠ΄Π΅Ρ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΡΠ°ΡΡΡΡ ΡΡΠΈΡΠ°ΡΡ ΡΠ°ΠΌΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½Π½ΡΡ Π²Π΅ΡΡΠΈΡ Π·Π°ΠΏΠΈΡΠΈ, Π½ΠΎ ΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ, ΡΡΠΎΠ±Ρ Π½Π΅ Π±ΡΠ»ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ²Π΅ΠΆΠ΅ΠΉ Π½Π΅ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ.
ΠΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ Π·Π°ΠΏΠΈΡΠΈ Π² ΡΠ°ΠΊΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°, Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π»ΠΈ Ρ ΡΡΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Π½Π΅ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ. ΠΡΠ»ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, ΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ (Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ ΡΠ΅ΠΆΠΈΠΌ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π²ΡΠ±ΡΠ°Π½):
* ΠΡΠ»ΠΈ wait, ΡΠΎ Π½Π°ΡΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΆΠ΄Π΅Ρ, ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π°Π²Π΅ΡΡΠΈΡΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΎΠ·Π΄Π°Π½Π° Π½Π΅ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½Π½Π°Ρ Π·Π°ΠΏΠΈΡΡ. Π Π΅ΡΠ»ΠΈ ΠΎΠ½Π° ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΠ»Π°ΡΡ ΠΈΠ»ΠΈ ΠΎΡΠΌΠ΅Π½ΠΈΠ»Π°ΡΡ, ΡΠΎ ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ.
* ΠΡΠ»ΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° nowait, ΡΠΎ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ° "Deadlock".
ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΡΡΠΎΠ²Π΅Π½Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ read_committed no_rec_version ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ², ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΡΡ.
Π£ΡΠΎΠ²Π΅Π½Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ SNAPSHOT Π·Π°Π΄Π°Π΅ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ concurrency. ΠΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ SNAPSHOT - ΡΠ°ΠΌΡΠΉ "ΡΠΎΠ΄Π½ΠΎΠΉ" ΡΠ΅ΠΆΠΈΠΌ InterBase, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Π²Π΅ΡΡΠΈΠΎΠ½Π½ΠΎΡΡΠΈ ΠΏΡΠΎΡΠ²Π»ΡΡΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎ. ΠΡΠΈ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π΄Π΅Π»Π°Π΅Ρ "ΡΠ½ΠΈΠΌΠΎΠΊ" ΠΌΠ°ΡΠΊΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ Π·Π°ΠΏΡΡΠΊΠ°, ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ, ΠΏΠΎΠΊΠ° ΠΎΠ½Π° Π΄Π»ΠΈΡΡΡ, Π²ΠΈΠ΄ΠΈΡ ΡΠ΅ ΠΆΠ΅ ΡΠ°ΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π»ΠΈ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ Π΅Π΅ Π·Π°ΠΏΡΡΠΊΠ°. ΠΠΈΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅Π»Π°ΡΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΌΠΈΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ, Π΅ΠΉ Π½Π΅ Π²ΠΈΠ΄Π½Ρ. ΠΠΉ Π²ΠΈΠ΄Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ²ΠΎΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ Π² ΡΡΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠ΅ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ ΡΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ Π΅Π΅ Π·Π°ΠΏΡΡΠΊΠ° (ΠΈΠΌΠ΅ΡΡΡΡ Π² Π²ΠΈΠ΄Ρ ΠΊΠ°ΠΊ ΡΠΆΠ΅ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½Π½ΡΠ΅, ΡΠ°ΠΊ ΠΈ Π΅ΡΠ΅ Π½Π΅ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅), Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ.
ΠΠΎΠΊΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Ρ ΡΡΠΎΠ²Π½Π΅ΠΌ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ concurrency, ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π²ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ Π΅Π΅ Π·Π°ΠΏΡΡΠΊΠ°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΠΊΡΡΠΈΡΡΡΡΠΈΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π²ΠΈΠ΄ΡΡ, ΡΡΠΎ SNAPSHOT Π°ΠΊΡΠΈΠ²Π΅Π½ ΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠ°Π²Π° ΡΠΎΠ±ΡΠ°ΡΡ Π²Π΅ΡΡΠΈΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΉ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ (Π³ΠΈΠΏΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈ) ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π½Π°ΡΠ΅ΠΌΡ SNAPSHOT.
ΠΠ±ΡΡΠ½ΠΎ SNAPSHOT ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π»ΠΈΠ±ΠΎ Π΄Π»Ρ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² (ΠΎΡΡΠ΅ΡΠΎΠ²), Π»ΠΈΠ±ΠΎ Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ, ΡΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ ΠΈΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅/ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ.
Π£ΡΠΎΠ²Π΅Π½Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ SNAPSHOT TABLE STABILITY Π·Π°Π΄Π°Π΅ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ consistency. ΠΡΠΎΡ ΡΡΠΎΠ²Π΅Π½Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ΅Π½ ΡΡΠΎΠ²Π½Ρ SNAPSHOT, Π½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ ΡΠ°Π±Π»ΠΈΡΡ Π½Π° Π·Π°ΠΏΠΈΡΡ. Π‘ΡΡΡ ΠΈΠ΄Π΅ΠΈ ΠΏΡΠΎΡΡΠ° - Π΅ΡΠ»ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Ρ ΡΡΠΎΠ²Π½Π΅ΠΌ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ consistency ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΡΠ°Π±Π»ΠΈΡΠ΅, ΡΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Ρ ΡΡΠΎΠ²Π½ΡΠΌΠΈ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ read_committed ΠΈ concurrency ΠΌΠΎΠ³ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΡΠ°ΡΡ ΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ, Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Ρ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΡΡΠΎΠ²Π½Π΅ΠΌ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ (Ρ. Π΅. consistency) Π½Π΅ ΡΠΌΠΎΠ³ΡΡ Π΄Π°ΠΆΠ΅ ΡΠΈΡΠ°ΡΡ.
ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ (ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΡΠ΅ΠΌΡΠ΅) ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡΡ. ΠΠ±ΡΡΠ½ΠΎ ΡΠ°ΠΊΠΎΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΊΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ. Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ, ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡ ΠΎΡΠ΅Π½Ρ ΠΊΠΎΡΠΎΡΠΊΠΎΠ΅ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈ ΡΡΠ°Π·Ρ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ ΠΡΡΠ³ΠΈΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ΅ΠΆΠΈΠΌΠ° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ wait ΠΈΠ»ΠΈ nowait Π»ΠΈΠ±ΠΎ ΠΆΠ΄ΡΡ ΡΠ²ΠΎΠ΅ΠΉ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ, Π»ΠΈΠ±ΠΎ Π²ΠΎΠ·Π±ΡΠΆΠ΄Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅.
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ
ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ - Ρ ΡΡΠΈΠΌ Π²ΠΎΠΏΡΠΎΡΠΎΠΌ ΡΠ°ΡΡΠΎ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ Π½ΡΠΆΠ½ΠΎ ΡΠ΅ΡΠ°ΡΡ Π²ΠΎΠΏΡΠΎΡ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΠΎ. ΠΠ±ΡΡΠ½ΠΎ Π²ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»ΡΡΡΡΡ Π½Π° Π³ΡΡΠΏΠΏΡ - Π·Π°ΠΏΡΠΎΡΡ Π½Π° ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΌΠΎΠ³ΠΎ "ΡΠ²Π΅ΠΆΠ΅Π³ΠΎ" ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , Π·Π°ΠΏΡΠΎΡΡ Π½Π° ΡΠ΅ΠΊΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π·Π°ΠΏΡΠΎΡΡ Π½Π° ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΡΡ ΡΠ°Π±Π»ΠΈΡ, Π·Π°ΠΏΡΠΎΡΡ Π½Π° ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΎΡΡΠ΅ΡΠ° ΠΈ Ρ. Π΄. ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³ΡΡΠΏΠΏΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ²ΠΎΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ (ΠΈΠ»ΠΈ Π³ΡΡΠΏΠΏΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ) Ρ Π½Π°Π±ΠΎΡΠΎΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², Π½ΡΠΆΠ½ΡΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ.