ΠΠΎΠ½ΡΠ»ΠΈΠΊΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ Π² 1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅ β ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ°ΠΌΡΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΡ ΠΈ ΠΊΠΎΠ²Π°ΡΠ½ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ , ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈ Π΄Π°ΠΆΠ΅ ΠΎΠ±ΡΡΠ½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ. ΠΠ½Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ, ΠΊΠΎΠ³Π΄Π° Π΄Π²Π΅ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΏΡΡΠ°ΡΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅ Π΄Π°Π½Π½ΡΠΌ, Π½ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΡΡΠΎΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π°Π²ΠΈΡΠ°ΡΡ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π²ΠΈΠ΄ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ , Π° Π² Π»ΠΎΠ³Π°Ρ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π·Π°ΠΏΠΈΡΠΈ ΠΎ deadlock ΠΈΠ»ΠΈ ΡΠ°ΠΉΠΌΠ°ΡΡΠ°Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ.
Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡ β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² 1Π‘:Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΠ³ΠΎΠ²Π»Π΅ΠΉ, 1Π‘:ΠΠ°ΡΠΏΠ»Π°ΡΠ° ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΎΠΌ ΠΈΠ»ΠΈ 1Π‘:ERP, Π³Π΄Π΅ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π΄Π΅ΡΡΡΠΊΠΈ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ². ΠΠΎ Π΄Π°ΠΆΠ΅ Π² Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ Π±Π°Π·Π°Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ ΠΌΠΎΠ³ΡΡ ΠΏΠ°ΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π±ΠΎΡΡ, Π΅ΡΠ»ΠΈ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π½Π°ΡΡΡΠΎΠ΅Π½Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΡ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°Π·Π±Π΅ΡΡΠΌ, ΠΏΠΎΡΠ΅ΠΌΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ°, ΠΊΠ°ΠΊ Π΅Ρ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² 1Π‘ ΠΈ SQL Server/PostgreSQL, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠΌ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΠΏΠΎ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ.
ΠΡΠΎΠ±ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ΄Π΅Π»ΠΈΠΌ ΡΠΈΠΏΠΈΡΠ½ΡΠΌ ΡΡΠ΅Π½Π°ΡΠΈΡΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠ²ΠΎΡΠΈΡΡΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ: ΠΌΠ°ΡΡΠΎΠ²ΡΠ΅ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΊΠΈ, ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΡΡΠΈΠ½Π³ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ², ΡΠΎΠ½ΠΎΠ²ΡΠ΅ Π·Π°Π΄Π°Π½ΠΈΡ ΠΈ ΠΎΠ±ΠΌΠ΅Π½Ρ Π΄Π°Π½Π½ΡΠΌΠΈ. Π’Π°ΠΊΠΆΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ ΠΊ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΌ ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ-ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ 1Π‘.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ Π² 1Π‘ ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ ΠΎΠ½ ΠΎΠΏΠ°ΡΠ΅Π½
ΠΠΎΠ½ΡΠ»ΠΈΠΊΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ (ΠΈΠ»ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°, deadlock) β ΡΡΠΎ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π΄Π²Π΅ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠ΅ΡΡΡΡΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄ΡΡΠ³ Π΄ΡΡΠ³Ρ, ΠΈ Π½ΠΈ ΠΎΠ΄Π½Π° ΠΈΠ· Π½ΠΈΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π²Π΅ΡΡΠΈΡΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
- π Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ 1 Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π»Π° ΡΠ°Π±Π»ΠΈΡΡ
ΠΠΎΠΊΡΠΌΠ΅Π½Ρ.ΠΠ°ΠΊΠ°Π·ΠΠΎΠΊΡΠΏΠ°ΡΠ΅Π»ΡΠΈ ΠΆΠ΄ΡΡ ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ°Π±Π»ΠΈΡΡΠ‘ΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ.ΠΠΎΠΌΠ΅Π½ΠΊΠ»Π°ΡΡΡΠ°. - π Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ 2 Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π»Π°
Π‘ΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ.ΠΠΎΠΌΠ΅Π½ΠΊΠ»Π°ΡΡΡΠ°ΠΈ ΠΆΠ΄ΡΡ ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈΠΠΎΠΊΡΠΌΠ΅Π½Ρ.ΠΠ°ΠΊΠ°Π·ΠΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Ρ.
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΎΠ±Π΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π·Π°Π²ΠΈΡΠ°ΡΡ, Π° ΡΠ΅ΡΠ΅Π· Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΎΠ΄Π½Π° ΠΈΠ· Π½ΠΈΡ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠΊΠ°ΡΡΠ²Π°Π΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ (Π‘Π£ΠΠ) Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ.
ΠΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ:
- β οΈ ΠΠ°Π²ΠΈΡΠ°Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ β Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ Π½Π΅ ΠΏΡΠΎΠ²ΠΎΠ΄ΡΡΡΡ, ΠΎΡΡΡΡΡ Π½Π΅ ΡΠΎΡΠΌΠΈΡΡΡΡΡΡ.
- π ΠΠ°Π΄Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈΠ·-Π·Π° Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½ΠΈΡ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ.
- π ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΡΠΊΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΏΠΎΡΠ΅ΡΠ΅ Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ Π½Π°ΡΡΡΠ΅Π½ΠΈΡ Π»ΠΎΠ³ΠΈΠΊΠΈ ΡΠ°Π±ΠΎΡΡ.
- π οΈ Π£Π²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π²ΡΡΡΠ½ΡΡ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡ ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΡ.
Π ΠΊΠ»ΠΈΠ΅Π½Ρ-ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ 1Π‘ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ Π‘Π£ΠΠ (Microsoft SQL Server, PostgreSQL, IBM DB2), Π° Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΌ β Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ°ΠΌΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠΈ ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΠΏΠ° Π±Π°Π·Ρ.
ΠΡΠΈΡΠΈΠ½Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ Π² 1Π‘
ΠΠΎΠ½ΡΠ»ΠΈΠΊΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ ΡΠ΅Π΄ΠΊΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ β ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡ ΠΏΡΠΎΠ²ΠΎΡΠΈΡΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΈΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ. ΠΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠΈΡΠΈΠ½Ρ:
1. ΠΠ΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π² ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡ
ΠΡΠ»ΠΈ Π΄Π²Π΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π±Π»ΠΎΠΊΠΈΡΡΡΡ ΡΠ΅ΡΡΡΡΡ Π² ΡΠ°Π·Π½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, ΡΠΈΡΠΊ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π΅Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
- π Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ A: Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ
Π‘ΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ.ΠΠΎΠ½ΡΡΠ°Π³Π΅Π½ΡΡ, Π·Π°ΡΠ΅ΠΌΠΠΎΠΊΡΠΌΠ΅Π½Ρ.Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΠ’ΠΎΠ²Π°ΡΠΎΠ². - π Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ B: Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ
ΠΠΎΠΊΡΠΌΠ΅Π½Ρ.Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΠ’ΠΎΠ²Π°ΡΠΎΠ², Π·Π°ΡΠ΅ΠΌΠ‘ΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ.ΠΠΎΠ½ΡΡΠ°Π³Π΅Π½ΡΡ.
2. ΠΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ
Π§Π΅ΠΌ Π΄ΠΎΠ»ΡΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, ΡΠ΅ΠΌ Π²ΡΡΠ΅ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°. Π’ΠΈΠΏΠΈΡΠ½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ:
- β³ ΠΠ°ΡΡΠΎΠ²ΠΎΠ΅ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² Π·Π° Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΠ΅ΡΠΈΠΎΠ΄ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠ΅ΡΠ΅ΠΏΡΠΎΠ²ΠΎΠ΄ΠΊΠ° Π·Π° Π³ΠΎΠ΄).
- π Π€ΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΎΡΡΡΡΠΎΠ² Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΎΠΉ ΡΠ°Π±Π»ΠΈΡ.
- π Π€ΠΎΠ½ΠΎΠ²ΡΠ΅ Π·Π°Π΄Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄ΠΎΠ»Π³ΠΎ.
3. ΠΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΈΠ»ΠΈ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΡ
ΠΡΠ»ΠΈ Π² Π±Π°Π·Π΅ Π½Π΅Ρ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ
ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ², Π‘Π£ΠΠ ΠΌΠΎΠΆΠ΅Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π»ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΡΡΡΠΎΠΊ, ΡΡΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΏΠΎΠΈΡΠΊΠ΅ ΠΏΠΎ Π½Π΅ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡ ΠΏΠΎΠ»Ρ Π‘ΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ.ΠΠΎΠΌΠ΅Π½ΠΊΠ»Π°ΡΡΡΠ°.ΠΡΡΠΈΠΊΡΠ» ΠΌΠΎΠΆΠ΅Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡΡΡ Π²ΡΡ ΡΠ°Π±Π»ΠΈΡΠ° Π½ΠΎΠΌΠ΅Π½ΠΊΠ»Π°ΡΡΡΡ.
4. ΠΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΎΠ΄Π½ΠΈΠΌΠΈ ΠΈ ΡΠ΅ΠΌΠΈ ΠΆΠ΅ Π΄Π°Π½Π½ΡΠΌΠΈ
Π’ΠΈΠΏΠΈΡΠ½ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ:
- π₯ ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π°ΠΊΠ°Π· ΠΊΠ»ΠΈΠ΅Π½ΡΠ°).
- π¦ ΠΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠΉ Π²Π²ΠΎΠ΄ ΠΎΡΡΠ°ΡΠΊΠΎΠ² ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΡΠΊΠ»Π°Π΄Ρ.
- π° ΠΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΡΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π΄Π΅Π½Π΅ΠΆΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΡΡΡΠ°.
5. ΠΡΠΈΠ±ΠΊΠΈ Π² ΠΊΠΎΠ΄Π΅ 1Π‘
Π Π°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ:
- π§ ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠ°ΡΠ°ΡΡΠ’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ()Π±Π΅Π·ΠΠ°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡΠ’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ()ΠΈΠ»ΠΈΠΡΠΌΠ΅Π½ΠΈΡΡΠ’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ(). - π ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π±Π΅Π· ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ.
- π Π§ΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π² ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π±Π΅Π· ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΡΡΠΎΠ²Π½Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ.
Π§ΡΠΎΠ±Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΠΈΡΠΊ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ², Π²ΡΠ΅Π³Π΄Π° Π±Π»ΠΎΠΊΠΈΡΡΠΉΡΠ΅ ΡΠ΅ΡΡΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ ΡΠΎΠΌ ΠΆΠ΅ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Π²ΠΎ Π²ΡΠ΅Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ½Π°ΡΠ°Π»Π° ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠΈ, Π·Π°ΡΠ΅ΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ, Π·Π°ΡΠ΅ΠΌ ΡΠ΅Π³ΠΈΡΡΡΡ.
ΠΠ°ΠΊ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ Π² 1Π‘
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΡΡΡΡΠ°Π½ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ, Π³Π΄Π΅ ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ ΠΎΠ½Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ. ΠΠ»Ρ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ 1Π‘ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π‘Π£ΠΠ.
1. ΠΡΡΠ½Π°Π» ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ 1Π‘
ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΆΡΡΠ½Π°Π» ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ (ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ β ΠΡΡΠ½Π°Π» ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ) ΠΈ ΠΎΡΡΠΈΠ»ΡΡΡΡΠΉΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΠΏΠΎ:
- π ΠΠ»ΡΡΠ΅Π²ΡΠΌ ΡΠ»ΠΎΠ²Π°ΠΌ:
Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°,deadlock,timeout. - β οΈ Π£ΡΠΎΠ²Π½Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ: ΠΡΠΈΠ±ΠΊΠ° ΠΈΠ»ΠΈ ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅.
- π₯ ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ, Ρ ΠΊΠΎΡΠΎΡΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
Π’ΠΈΠΏΠΈΡΠ½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ Π² ΠΆΡΡΠ½Π°Π»Π΅:
ΠΡΠΈΠ±ΠΊΠ° ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ: ΠΠ·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° (deadlock) ΠΎΠ±Π½Π°ΡΡΕΎena Π½Π° ΡΡΠΎΠ²Π½Π΅ Π‘Π£ΠΠ. Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΎΡΠΌΠ΅Π½Π΅Π½Π°.
2. ΠΠΎΠ½ΠΈΡΠΎΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ SQL Server
ΠΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Microsoft SQL Server, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ΡΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ ΡΠ΅ΡΠ΅Π· SQL Server Management Studio (SSMS) ΠΈ:
- ΠΡΠΊΡΠΎΠΉΡΠ΅
Activity Monitor(ΠΏΡΠ°Π²ΡΠΉ ΠΊΠ»ΠΈΠΊ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ βActivity Monitor). - ΠΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡ
Processesβ ΡΠ°ΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ. - ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π·Π°ΠΏΡΠΎΡ Π΄Π»Ρ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠΈ:
SELECT * FROM sys.dm_tran_locks;
3. ΠΠΎΠ³ΠΈ PostgreSQL
ΠΠ»Ρ PostgreSQL ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ Π»ΠΎΠ³ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° (ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ Π² /var/log/postgresql/) Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π²ΠΈΠ΄Π°:
ERROR: deadlock detected
DETAIL: Process 1234 waits for ShareLock on transaction 5678; blocked by process 5678.
Process 5678 waits for ShareLock on transaction 1234; blocked by process 1234.
4. Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΆΡΡΠ½Π°Π» 1Π‘
ΠΠΊΠ»ΡΡΠΈΡΠ΅ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΆΡΡΠ½Π°Π» (ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ β Π’Π΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΆΡΡΠ½Π°Π») Ρ ΡΡΠΎΠ²Π½Π΅ΠΌ Π΄Π΅ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΠΈΠ½ΠΈΠΌΡΠΌ + Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ. ΠΠΎΡΠ»Π΅ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠΉΡΠ΅ ΡΠ°ΠΉΠ» ΠΆΡΡΠ½Π°Π»Π° (ΠΎΠ±ΡΡΠ½ΠΎ 1Cv8Log\*.lgd) Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΠ»ΠΈΡΡ 1C:Π’Π΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΆΡΡΠ½Π°Π».
ΠΠ°ΠΊ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΆΡΡΠ½Π°Π» Π² 1Π‘ 8.3
1. ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΎΡ.
2. ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ β Π’Π΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΆΡΡΠ½Π°Π».
3. Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠ»Π°ΠΆΠΎΠΊ ΠΠ΅ΡΡΠΈ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΆΡΡΠ½Π°Π».
4. ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΡΡΠΎΠ²Π΅Π½Ρ Π΄Π΅ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΠΈΠ½ΠΈΠΌΡΠΌ + Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΠ°ΠΊΡΠΈΠΌΡΠΌ.
5. Π£ΠΊΠ°ΠΆΠΈΡΠ΅ ΠΏΡΡΡ Π΄Π»Ρ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ Π»ΠΎΠ³ΠΎΠ² ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΠ.
6. ΠΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΡΠ΅ΡΠ²Π΅Ρ 1Π‘.
| ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠΈ | Π§ΡΠΎ ΠΈΡΠΊΠ°ΡΡ | ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ |
|---|---|---|
| ΠΡΡΠ½Π°Π» ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ 1Π‘ | Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎ deadlock, ΡΠ°ΠΉΠΌΠ°ΡΡΠ°Ρ
Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ |
Π€ΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ ΠΏΠΎ ΡΡΠΎΠ²Π½Ρ ΠΡΠΈΠ±ΠΊΠ° ΠΈ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ ΡΠ»ΠΎΠ²Π°ΠΌ |
| Activity Monitor (SQL Server) | ΠΠ°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ (WAIT_TYPE = LCK_M_*) |
ΠΡΠ°Π²ΡΠΉ ΠΊΠ»ΠΈΠΊ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ β Activity Monitor |
| ΠΠΎΠ³ΠΈ PostgreSQL | ΠΠ°ΠΏΠΈΡΠΈ ERROR: deadlock detected |
ΠΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΡΠ΅ΡΠ΅Π· tail -f /var/log/postgresql/postgresql-*.log |
| Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΆΡΡΠ½Π°Π» 1Π‘ | ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ ΠΈ ΠΎΡΠΊΠ°ΡΠΎΠ² ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ | ΠΠ½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΠ»ΠΈΡΡ 1C:Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΆΡΡΠ½Π°Π» |
ΠΡΠ»ΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ, ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π½Π°ΡΡΡΠΎΠΈΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ±ΠΎΡ Π΄Π°ΠΌΠΏΠΎΠ² Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ Π² Π‘Π£ΠΠ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² SQL Server ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π· SQL Server Profiler Ρ ΡΠΈΠ»ΡΡΡΠΎΠΌ ΠΏΠΎ ΡΠΎΠ±ΡΡΠΈΡ Deadlock graph.
ΠΠ°ΠΊ ΡΡΡΡΠ°Π½ΠΈΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ Π² 1Π‘: ΠΏΠΎΡΠ°Π³ΠΎΠ²ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ
Π‘ΠΏΠΎΡΠΎΠ±Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΠΏΡΠΈΡΠΈΠ½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΎΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΊ ΡΠ»ΠΎΠΆΠ½ΠΎΠΌΡ.
1. ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ Π² ΠΊΠΎΠ΄Π΅ 1Π‘
ΠΡΠ»ΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ Π²ΡΠ·Π²Π°Π½ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ Π² ΠΊΠΎΠ΄Π΅, ΠΈΡΠΏΡΠ°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ:
- π§ Π£ΠΌΠ΅Π½ΡΡΠΈΡΠ΅ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ β Π²ΡΠ½ΠΎΡΠΈΡΠ΅ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΡΡΡΠΎΠ²) Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ.
- π ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ²Π½ΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ
ΠΠ»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡΠΠ»ΡΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ()ΠΈΠ»ΠΈΠΠ»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡΠΠ°Π½Π½ΡΠ΅ΠΠ»ΡΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ(). - π ΠΡΠΎΠ²Π΅ΡΡΠΉΡΠ΅ Π½Π°Π»ΠΈΡΠΈΠ΅ Π½Π΅Π·Π°ΠΊΡΡΡΡΡ
ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ β ΠΏΠΎΡΠ»Π΅
ΠΠ°ΡΠ°ΡΡΠ’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ()ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡΠΠ°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡΠ’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ()ΠΈΠ»ΠΈΠΡΠΌΠ΅Π½ΠΈΡΡΠ’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ().
ΠΡΠΈΠΌΠ΅Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°:
ΠΠ°ΡΠ°ΡΡΠ’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ();
ΠΠΎΠΏΡΡΠΊΠ°
ΠΠΎΠΊΡΠΌΠ΅Π½Ρ.ΠΠ°ΠΊΠ°Π·ΠΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Ρ.ΠΠ°ΠΉΡΠΈΠΠΎΠΠΎΠΌΠ΅ΡΡ("0001");
ΠΠΎΠΊΡΠΌΠ΅Π½Ρ.ΠΠ°ΠΊΠ°Π·ΠΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Ρ.ΠΠ»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡΠΠ»ΡΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ();
// ΠΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ
ΠΠ°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡΠ’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ();
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΡΠΌΠ΅Π½ΠΈΡΡΠ’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ();
Π‘ΠΎΠΎΠ±ΡΠΈΡΡ(ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΡΠΈΠ±ΠΊΠΈ());
ΠΠΎΠ½Π΅ΡΠΠΎΠΏΡΡΠΊΠΈ;
2. ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ
ΠΡΠΎΠ²Π΅ΡΡΡΠ΅, Π΅ΡΡΡ Π»ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΡ Π½Π° ΠΏΠΎΠ»ΡΡ
, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΡΡΠ»ΠΎΠ²ΠΈΡΡ
ΠΠΠ ΠΈΠ»ΠΈ Π‘ΠΠ Π’ΠΠ ΠΠΠΠ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ ΡΠΎ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΠΠΎΠΌΠ΅Π½ΠΊΠ»Π°ΡΡΡΠ°, Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡ Π½Π° ΠΏΠΎΠ»Π΅ ΠΡΡΠΈΠΊΡΠ»:
// ΠΠ»Ρ SQL Server
CREATE INDEX IX_ΠΠΎΠΌΠ΅Π½ΠΊΠ»Π°ΡΡΡΠ°_ΠΡΡΠΈΠΊΡΠ» ON Π‘ΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ.ΠΠΎΠΌΠ΅Π½ΠΊΠ»Π°ΡΡΡΠ°(ΠΡΡΠΈΠΊΡΠ»);
// ΠΠ»Ρ PostgreSQL
CREATE INDEX ix_nomenklatura_artikul ON ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ_Π½ΠΎΠΌΠ΅Π½ΠΊΠ»Π°ΡΡΡΠ°(Π°ΡΡΠΈΠΊΡΠ»);
3. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠΎΠ²Π½Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π² 1Π‘ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠΎΠ²Π΅Π½Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ Read Committed. ΠΡΠ»ΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΈΠ·-Π·Π° ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Repeatable Read ΠΈΠ»ΠΈ Serializable, Π½ΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ½ΠΈΠ·ΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ.
ΠΡΠΈΠΌΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠΎΠ²Π½Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ Π² ΠΊΠΎΠ΄Π΅:
ΠΠ°ΡΠ°ΡΡΠ’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ(Π£ΡΠΎΠ²Π΅Π½ΡΠΠ·ΠΎΠ»ΡΡΠΈΠΈΠ’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ.ΠΠΎΠ²ΡΠΎΡΡΠ΅ΠΌΠΎΠ΅Π§ΡΠ΅Π½ΠΈΠ΅);
4. Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ
ΠΡΠ»ΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΈΠ·-Π·Π° ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ Π½Π°Π³ΡΡΠ·ΠΊΡ:
- π ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ ΡΠΎΠ½ΠΎΠ²ΡΠ΅ Π·Π°Π΄Π°Π½ΠΈΡ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² Π½Π΅ΡΠ°Π±ΠΎΡΠΈΠ΅ ΡΠ°ΡΡ.
- π₯ Π Π°Π·Π±Π΅ΠΉΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΏΠΎ ΡΠΎΠ»ΡΠΌ ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΡΠ΅ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ½ΡΠΌ Π΄Π°Π½Π½ΡΠΌ.
- π ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ΅Π³Π»Π°ΠΌΠ΅Π½ΡΠ½ΡΠ΅ Π·Π°Π΄Π°Π½ΠΈΡ Π΄Π»Ρ ΠΌΠ°ΡΡΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠ΅ΡΠ΅ΠΏΡΠΎΠ²ΠΎΠ΄ΠΊΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² Π½ΠΎΡΡΡ).
5. ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ²
ΠΠ΅Π΄Π»Π΅Π½Π½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ Π²ΡΠ΅ΠΌΡ ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ. ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΏΠ»Π°Π½Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠΉΡΠ΅ ΠΈΡ :
- π ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅
ΠΠΠͺΠΠΠΠΠΠ’Π¬Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠΎΠ΄Π·Π°ΠΏΡΠΎΡΠΎΠ². - π ΠΠ·Π±Π΅Π³Π°ΠΉΡΠ΅
ΠΠ«ΠΠ ΠΠ’Π¬ Π ΠΠΠΠΠ§ΠΠ«ΠΠ±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ. - π ΠΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΠΉΡΠ΅ Π²ΡΠ±ΠΎΡΠΊΡ Π΄Π°Π½Π½ΡΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ
ΠΠΠ ΠΠ«ΠΠΈΠ»ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΉ Π²ΠΠΠ.
ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΆΡΡΠ½Π°Π» ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ deadlock|ΠΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠΉΡΠ΅ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π² ΠΊΠΎΠ΄Π΅|ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΈΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ |ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠΉΡΠ΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ|Π Π°Π·Π΄Π΅Π»ΠΈΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (ΡΠΎΠ½ΠΎΠ²ΡΠ΅ Π·Π°Π΄Π°Π½ΠΈΡ)|ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΡΠΎΠ²Π΅Π½Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ-->
ΠΡΠΎΡΠΈΠ»Π°ΠΊΡΠΈΠΊΠ° ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ Π² 1Π‘
ΠΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± Π±ΠΎΡΡΠ±Ρ Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°ΠΌΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ β ΠΈΡ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΠ΅. ΠΠΎΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΌΠ΅ΡΡ ΠΏΡΠΎΡΠΈΠ»Π°ΠΊΡΠΈΠΊΠΈ:
1. ΠΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ
- π§ ΠΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΡΠΉΡΠ΅ ΠΎΠ±ΡΡΠΌ Π΄Π°Π½Π½ΡΡ , Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌΡΡ Π² ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ.
- β³ Π‘ΠΎΠΊΡΠ°ΡΠ°ΠΉΡΠ΅ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ.
- π ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ΅ΡΡΡΡΠΎΠ² Π²ΠΎ Π²ΡΠ΅Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡ .
2. Π Π΅Π³ΡΠ»ΡΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
- π§Ή ΠΡΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅ ΡΠ΅ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΡ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ (Π² SQL Server β
sp_updatestats, Π² PostgreSQL βANALYZE). - ποΈ ΠΡΠΈΡΠ°ΠΉΡΠ΅ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ (Π°ΡΡ ΠΈΠ²ΠΈΡΡΠΉΡΠ΅ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΡΠΉΡΠ΅ Π½Π΅Π½ΡΠΆΠ½ΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ).
- π ΠΠΎΠ½ΠΈΡΠΎΡΡΡΠ΅ ΡΠΎΡΡ Π±Π°Π·Ρ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠΉΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ.
3. ΠΠ±ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ
Π§Π°ΡΡΠΎ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΈΠ·-Π·Π° Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΡΠΎΠ²Π΅Π΄ΠΈΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠ°ΠΆ:
- π« ΠΠ΅ ΠΎΡΡΠ°Π²Π»ΡΠΉΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ ΠΎΡΠΊΡΡΡΡΠΌΠΈ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ.
- π ΠΠ΅ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠΉΡΠ΅ ΠΎΠ΄Π½ΠΈ ΠΈ ΡΠ΅ ΠΆΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Ρ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ.
- β³ ΠΠ΅ Π·Π°ΠΏΡΡΠΊΠ°ΠΉΡΠ΅ ΠΌΠ°ΡΡΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π² ΠΏΠΈΠΊΠΎΠ²ΡΠ΅ ΡΠ°ΡΡ.
4. ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ°ΠΉΠΌΠ°ΡΡΠΎΠ² Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ
Π SQL Server ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ°ΠΉΠΌΠ°ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ β 5 ΡΠ΅ΠΊΡΠ½Π΄) Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° LOCK_TIMEOUT. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ Π½Π΅ ΡΠ΅ΡΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π° Π»ΠΈΡΡ ΠΎΡΠ»ΠΎΠΆΠΈΡ Π΅Ρ ΠΏΡΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅.
-- Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ°ΠΉΠΌΠ°ΡΡΠ° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π½Π° 10 ΡΠ΅ΠΊΡΠ½Π΄
SET LOCK_TIMEOUT 10000;
5. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π²Π΅ΡΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, 1Π‘:ERP) ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π²Π΅ΡΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ Π·Π° ΡΡΡΡ ΠΎΠΏΡΠΈΠΌΠΈΡΡΠΈΡΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ°. ΠΠΊΠ»ΡΡΠΈΡΠ΅ Π΅Π³ΠΎ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΡ.
Π Π΅Π³ΡΠ»ΡΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ (ΡΠ΅ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΡ, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ) ΡΠ½ΠΈΠΆΠ°Π΅Ρ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ Π½Π° 30-50%.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΌ ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ-ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ°Ρ 1Π‘
ΠΠΎΠ΄Ρ ΠΎΠ΄Ρ ΠΊ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΠΏΠ° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
Π€Π°ΠΉΠ»ΠΎΠ²ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ 1Π‘
Π ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ (.1CD) Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ ΡΠ°ΠΌΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎΠΉ 1Π‘. ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ:
- π ΠΠ΅Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌ Π‘Π£ΠΠ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, SQL Server Profiler).
- π ΠΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠ° Π²Π΅Π΄ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ΅Π· ΠΆΡΡΠ½Π°Π» ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΆΡΡΠ½Π°Π».
- π οΈ ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ:
- ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ΄Π° 1Π‘ (ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ).
- Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠ°Π±ΠΎΡΡ.
- ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ-ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΏΡΠΈ Π²ΡΡΠΎΠΊΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠ΅.
ΠΠ»ΠΈΠ΅Π½Ρ-ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ (SQL Server, PostgreSQL)
ΠΠ΄Π΅ΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ Π‘Π£ΠΠ, ΡΡΠΎ Π΄Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π΄Π»Ρ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠΈ ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ:
- π οΈ ΠΠΎΡΡΡΠΏ ΠΊ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌ Π‘Π£ΠΠ (Activity Monitor, SQL Server Profiler, pgAdmin).
- π ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ»Π°Π½Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ².
- π§ ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ², ΡΡΠΎΠ²Π½Π΅ΠΉ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ, ΡΠ°ΠΉΠΌΠ°ΡΡΠΎΠ².
ΠΡΠΈΠΌΠ΅Ρ Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ° Π² SQL Server:
- ΠΡΠΊΡΠΎΠΉΡΠ΅ SQL Server Management Studio.
- ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ Π·Π°ΠΏΡΠΎΡ:
SELECTt1.resource_type,
t1.resource_database_id,
t1.request_mode,
t1.request_session_id,
t2.blocking_session_id
FROM
sys.dm_tran_locks t1
INNER JOIN
sys.dm_os_waiting_tasks t2 ON t1.lock_owner_address = t2.resource_address;
- ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΈ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π°Π²Π΅ΡΡΠΈΡΠ΅ ΠΈΡ
Ρ ΠΏΠΎΠΌΠΎΡΡΡ
KILL {session_id}.
Π ΠΊΠ»ΠΈΠ΅Π½Ρ-ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΡΠ΅ SQL Server Agent ΠΈΠ»ΠΈ pg_cron Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ±ΠΎΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°Ρ . ΠΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²ΡΡΠ²ΠΈΡΡ Π·Π°ΠΊΠΎΠ½ΠΎΠΌΠ΅ΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ.
Π§Π°ΡΡΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ
ΠΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΡΡΡΡΠ°Π½ΠΈΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠ°ΡΡΠΎ Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ³ΡΠ±Π»ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΠΎΡ ΡΠ°ΠΌΡΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΠ΅ ΠΈΠ· Π½ΠΈΡ :
1. Π£Π²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠΌΠ°ΡΡΠ° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ
ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡΡΠ°ΡΡΡΡ ΡΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΏΡΠΎΡΡΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Ρ ΡΠ°ΠΉΠΌΠ°ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ 5 Π΄ΠΎ 30 ΡΠ΅ΠΊΡΠ½Π΄). ΠΡΠΎ Π½Π΅ ΡΠ΅ΡΠ°Π΅Ρ ΠΏΡΠΈΡΠΈΠ½Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°, Π° Π»ΠΈΡΡ ΠΎΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ Π΅Π³ΠΎ ΠΏΡΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ:
- β³ ΠΠΎΠ»Π΅Π΅ Π΄ΠΎΠ»Π³ΠΈΠΌ Π·Π°Π²ΠΈΡΠ°Π½ΠΈΡΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°.
- π Π£Π²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ.
- π ΠΠ°ΡΠΊΠ°Π΄Π½ΡΠΌ ΠΎΡΠΊΠ°ΡΠ°ΠΌ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ.
2. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΎΠ²Π½Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ SERIALIZABLE
ΠΠ΅ΡΠ΅Ρ
ΠΎΠ΄ Π½Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ (SERIALIZABLE) Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΡΠ°Π½ΡΠΎΠΌΠ½ΡΡ
ΡΡΠ΅Π½ΠΈΠΉ, Π½ΠΎ:
- π’ ΠΠ½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ½ΠΈΠΆΠ°Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈΠ·-Π·Π° ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ.
- π ΠΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°ΠΌ Π² ΡΡΠ΅Π½Π°ΡΠΈΡΡ , Π³Π΄Π΅ ΠΈΡ ΡΠ°Π½ΡΡΠ΅ Π½Π΅ Π±ΡΠ»ΠΎ.
3. ΠΠ°ΡΡΠΎΠ²ΠΎΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ²
ΠΠ½Π΄Π΅ΠΊΡΡ ΡΡΠΊΠΎΡΡΡΡ Π²ΡΠ±ΠΎΡΠΊΡ, Π½ΠΎ:
- π Π£Π²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
- β³ ΠΠ°ΠΌΠ΅Π΄Π»ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π°ΠΏΠΈΡΠΈ (INSERT, UPDATE, DELETE).
- π ΠΠΎΠ³ΡΡ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΡΡΡΠΎΠΉΠΊΠΈ.
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ Π΄Π»Ρ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ².
4. ΠΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΆΡΡΠ½Π°Π»ΠΎΠ² ΠΈ Π»ΠΎΠ³ΠΎΠ²
ΠΠ½ΠΎΠ³ΠΈΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ ΠΏΡΡΠ°ΡΡΡΡ ΡΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ "Π²ΡΠ»Π΅ΠΏΡΡ", Π½Π΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΡ:
- π ΠΡΡΠ½Π°Π» ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ 1Π‘.
- π ΠΠΎΠ³ΠΈ Π‘Π£ΠΠ.
- π Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΆΡΡΠ½Π°Π».
ΠΠ΅Π· Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΡΠΈΡΠΈΠ½ Π»ΡΠ±ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π±ΡΠ΄ΡΡ ΠΌΠ°Π»ΠΎΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Ρ.
5. ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ ΡΠΎΠ²ΡΠ΅ΠΌ
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΡΠ°ΡΡΡΡ ΠΎΠ±ΠΎΠΉΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΎΡΠΊΠ»ΡΡΠ°Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ:
ΠΠ»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°ΠΠ°Π½Π½ΡΡ
= ΠΠΎΠΆΡ;
ΠΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ:
- π₯ ΠΠΎΡΠ΅ΡΠ΅ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ Π΄Π°Π½Π½ΡΡ .
- π ΠΠ΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌ Π·Π°ΠΏΡΠΎΡΠΎΠ².
- β οΈ Π’ΡΡΠ΄Π½ΠΎΡΡΡΡΠ°Π½ΠΈΠΌΡΠΌ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ Π² ΡΡΡΡΠ΅.
Π£Π²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠΌΠ°ΡΡΠ° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ ΠΈΠ»ΠΈ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ β ΡΡΠΎ "ΠΊΠΎΡΡΡΠ»ΠΈ", ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΡΠ΅ΡΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π° Π»ΠΈΡΡ ΠΌΠ°ΡΠΊΠΈΡΡΡΡ Π΅Ρ. ΠΡΠ΅Π³Π΄Π° ΠΈΡΠΈΡΠ΅ ΠΈ ΡΡΡΡΠ°Π½ΡΠΉΡΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠΏΡΠΈΡΠΈΠ½Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°.
FAQ: Π§Π°ΡΡΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΎ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ Π² 1Π‘
β ΠΠΎΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ ΡΠ°ΡΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΌΠ΅ΡΡΡΠ°?
Π ΠΊΠΎΠ½ΡΠ΅ ΠΌΠ΅ΡΡΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ:
- π Π€ΠΎΡΠΌΠΈΡΡΡΡ ΠΎΡΡΡΡΡ (ΠΎΠ±ΠΎΡΠΎΡΠ½ΠΎ-ΡΠ°Π»ΡΠ΄ΠΎΠ²Π°Ρ Π²Π΅Π΄ΠΎΠΌΠΎΡΡΡ, Π±Π°Π»Π°Π½Ρ).
- π ΠΡΠΎΠ²ΠΎΠ΄ΡΡ ΠΌΠ°ΡΡΠΎΠ²ΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ (Π·Π°ΠΊΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΡΡΠ°, Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π·Π°ΡΠΏΠ»Π°ΡΡ).
- π ΠΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ΅Π³Π»Π°ΠΌΠ΅Π½ΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ (ΠΏΠ΅ΡΠ΅ΠΎΡΠ΅Π½ΠΊΠ° Π·Π°ΠΏΠ°ΡΠΎΠ², ΡΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π’ΠΠ¦).
ΠΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠΈΠΊΠΎΠ²ΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ Π½Π° Π±Π°Π·Ρ ΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ². Π Π΅ΡΠ΅Π½ΠΈΠ΅ β ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΈΡ Π² Π½Π΅ΡΠ°Π±ΠΎΡΠΈΠ΅ ΡΠ°ΡΡ.
β ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ?
ΠΠ΅Ρ,Conflict blockquote> ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΠΎΠ½ΡΠ»ΠΈΠΊΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ β ΡΡΠΎ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ²Π»Π΅Π½ΠΈΠ΅ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ . ΠΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ Π½ΠΈΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²Π΅ΡΡΠΈ ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ, ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π‘Π£ΠΠ.
β ΠΠ°ΠΊ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊΠ°Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ?
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ:
- π ΠΡΡΠ½Π°Π» ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ 1Π‘ β ΠΈΡΠΈΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎ
deadlockΡ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. - π SQL Server Profiler (Π΄Π»Ρ SQL Server) β Π½Π°ΡΡΡΠΎΠΉΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΡ Π½Π° ΡΠΎΠ±ΡΡΠΈΠ΅
Deadlock graph. - π pg_stat_activity (Π΄Π»Ρ PostgreSQL) β ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ.
Π ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΆΡΡΠ½Π°Π»Π΅ 1Π‘ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ, ΠΏΡΠΈΠ²Π΅Π΄ΡΡΡ ΠΊ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ.
β Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΏΡΠΈ ΠΎΠ±ΠΌΠ΅Π½Π΅ Π΄Π°Π½Π½ΡΠΌΠΈ?
ΠΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½ΡΠΌΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΡΠ΅Π· Π£Π½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ ΠΎΠ±ΠΌΠ΅Π½Π° ΠΈΠ»ΠΈ Π ΠΠ) ΡΠ°ΡΡΠΎ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ ΠΈΠ·-Π·Π°:
- π ΠΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π΄Π°Π½Π½ΡΡ Π² ΡΠ·Π»Ρ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΉ Π±Π°Π·Ρ.
- π ΠΠ»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠΎΠ² ΠΏΡΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ.
- β³ ΠΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π΄Π°Π½Π½ΡΡ .
Π Π΅ΡΠ΅Π½ΠΈΡ:
- π ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΠ±ΠΌΠ΅Π½ΠΎΠ² Π½Π° ΡΠ°Π·Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ.
- π¦ Π Π°Π·Π±Π΅ΠΉΡΠ΅ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ Π΄Π°Π½Π½ΡΡ Π½Π° ΠΌΠ΅Π½ΡΡΠΈΠ΅ ΠΏΠΎΡΡΠΈΠΈ.
- π§ ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΡΡΠΈΡΠ½ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ (Π΅ΡΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ).
β ΠΠ°ΠΊ Π²Π»ΠΈΡΠ΅Ρ Π²Π΅ΡΡΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ 1Π‘ Π½Π° ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ?
Π Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ 1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅ 8.3 Π±ΡΠ»ΠΈ Π²Π½Π΅ΡΠ΅Π½Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ, ΡΠ½ΠΈΠΆΠ°ΡΡΠΈΠ΅ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ²:
- π§ ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ (Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ 8.3.10).
- π Π£Π»ΡΡΡΠ΅Π½Π½Π°Ρ ΡΠ°Π±ΠΎΡΠ° Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°ΠΌΠΈ Π² ΠΊΠ»ΠΈΠ΅Π½Ρ-ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅.
- π οΈ ΠΠΎΠ²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°ΠΌΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
ΠΠ»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡΠΠ°Π½Π½ΡΠ΅ΠΠ»ΡΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ()).
ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π°ΠΆΠ΅ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ ΠΏΡΠΈ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΈΠ»ΠΈ Π²ΡΡΠΎΠΊΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠ΅. Π Π΅Π³ΡΠ»ΡΡΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠΉΡΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ!