ΠΠ°ΠΆΠ΅ ΠΎΠΏΡΡΠ½ΡΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ 1Π‘: ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅ 8.3 Π³ΠΎΠ΄Π°ΠΌΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ, Π½Π΅ ΠΏΠΎΠ΄ΠΎΠ·ΡΠ΅Π²Π°Ρ ΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠΈ Π΄Π΅ΡΡΡΠΊΠΎΠ² ΡΠΊΡΡΡΡΡ ΡΠ΅ΠΆΠΈΠΌΠΎΠ². ΠΠ½ΠΈ Π½Π΅ ΠΎΠΏΠΈΡΠ°Π½Ρ Π² ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, Π½Π΅ ΡΠΏΠΎΠΌΠΈΠ½Π°ΡΡΡΡ Π½Π° ΠΊΡΡΡΠ°Ρ 1Π‘: ΠΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π», Π½ΠΎ ΠΌΠΎΠ³ΡΡ ΡΠΏΠ°ΡΡΠΈ ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ΅, ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Π±Π°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΡΠ±ΠΎΡ.
ΠΡΠΈ ΡΠ΅ΠΆΠΈΠΌΡ Π°ΠΊΡΠΈΠ²ΠΈΡΡΡΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΎΡ ΠΈΠ»ΠΈ ΠΏΡΡΠΌΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΊ Π‘Π£ΠΠ β ΠΈ ΡΠ°ΡΡΠΎ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π² ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΠΈΡΡΠ°ΡΠΈΡΡ
. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΠΆΠΈΠΌ "Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½Π°Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ" ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠΊΠ°ΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π±Π°Π·Π΅ Π±Π΅Π· ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈΠ· Π±ΡΠΊΠ°ΠΏΠ°, Π΅ΡΠ»ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π·Π°Π²ΠΈΡΠ»Π° ΠΈΠ·-Π·Π° ΡΠ΅ΡΠ΅Π²ΡΡ
ΠΏΡΠΎΠ±Π»Π΅ΠΌ. Π DebuggerMode=Extended ΡΠ°ΡΠΊΡΡΠ²Π°Π΅Ρ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π΄Π°ΠΆΠ΅ Π² ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΡ
ΠΆΡΡΠ½Π°Π»Π°Ρ
ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ β ΠΏΠΎΠ΄Π±ΠΎΡΠΊΠ° ΠΈΠ· 13 ΠΌΠ°Π»ΠΎΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ ΡΠ΅ΠΆΠΈΠΌΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΡΠΎΠ±ΡΠ°Π»ΠΈ ΠΈΠ· ΠΎΠΏΡΡΠ° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ, ΡΠΎΡΡΠΌΠΎΠ² ΠΏΠ°ΡΡΠ½Π΅ΡΠΎΠ² 1Π‘ ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ² ΡΡΠ°Π½ΡΠ°ΠΉΠ·ΠΈ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π²Π΅ΡΡΠΈΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, 8.3.20+), Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ PostgreSQL, Π½ΠΎ Π½Π΅ Ρ MS SQL. ΠΠ΅ΡΠ΅Π΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Π² ΡΠ²ΠΎΠ΅ΠΉ ΡΡΠ΅Π΄Π΅.
1. Π Π΅ΠΆΠΈΠΌ "Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½Π°Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ" (TransactionIsolation)
ΠΡΠΎΡ ΡΠ΅ΠΆΠΈΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΡΠΎΠ²Π½Π΅ΠΌ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ
1Π‘ Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΠ· ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΎΡΠ°. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠΎΠ²Π΅Π½Ρ Read Committed, Π½ΠΎ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΡΠ΅Π½Π°ΡΠΈΡΡ
(Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΌΠ°ΡΡΠΎΠ²ΡΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΡ
ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠΎΠ² Ρ Π²ΡΡΠΎΠΊΠΎΠΉ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΈΠ΅ΠΉ) ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Repeatable Read ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Serializable.
ΠΠΊΡΠΈΠ²ΠΈΡΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π·Π°ΠΏΡΡΠΊΠ°:
Designer.exe /TransactionIsolationLevel Serializable
ΠΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ ΡΠ΅Π°Π½ΡΠ°:
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΠ£ΡΠΎΠ²Π΅Π½ΡΠΠ·ΠΎΠ»ΡΡΠΈΠΈΠ’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ(Π£ΡΠΎΠ²Π΅Π½ΡΠΠ·ΠΎΠ»ΡΡΠΈΠΈΠ’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ.ΠΠΎΠ²ΡΠΎΡΡΠ΅ΠΌΠΎΠ΅Π§ΡΠ΅Π½ΠΈΠ΅);
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Serializable ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π²Π·Π°ΠΈΠΌΠ½ΡΠΌ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°ΠΌ (deadlock) Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ
Π±Π°Π·Π°Ρ
. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΊΡΠΈΡΠΈΡΠ½ΡΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΈ ΠΎΡΠΊΠ°ΡΡΠ²Π°ΠΉΡΠ΅ ΡΡΠΎΠ²Π΅Π½Ρ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
- π Repeatable Read β ΡΠΈΠΊΡΠΈΡΡΠ΅Ρ "ΡΠ½ΠΈΠΌΠΎΠΊ" Π΄Π°Π½Π½ΡΡ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π°ΡΠ°Π»Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Ρ ΡΠ°Π½ΡΠΎΠΌΠ½ΡΠ΅ ΡΡΠ΅Π½ΠΈΡ.
- π« Serializable β ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ, Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ ΡΡΡΠΎΠΊ (ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π½Π΅ Π²ΡΠ΅ΠΌΠΈ Π‘Π£ΠΠ).
- β‘ Read Uncommitted β ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½Π°Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΈΡΠ°ΡΡ Π½Π΅Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ (ΠΎΠΏΠ°ΡΠ½ΠΎ Π΄Π»Ρ ΡΠΈΠ½Π°Π½ΡΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ!).
ΠΡΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠΎΠ²Π½Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ Π±Π°Π·Π° "ΠΏΠΎΠ΄Π²ΠΈΡΠ»Π°", ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ Π°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΡΠ΅ΡΠ΅Π· ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ β ΠΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΈ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΠ΅ ΡΠ΅ΡΡΠΈΠΈ.
2. Π Π΅ΠΆΠΈΠΌ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ (ExtensionDebug)
Π‘ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ° ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π² 1Π‘ 8.3.14+ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ: ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΡΠ΅ΠΊΡΡΠ΅ΠΉΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ², Π΅ΡΠ»ΠΈ ΠΊΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΈΠ· ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ. Π Π΅ΠΆΠΈΠΌ ExtensionDebug ΡΠ΅ΡΠ°Π΅Ρ ΡΡΠΎ, ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Π³ΡΡΠΆΠ°Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ Π²ΡΠ΅Ρ
ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΡ
ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ.
ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΡΠ°ΠΊ:
Designer.exe /ExtensionDebugMode Full
Π ΡΡΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ:
- π Π’ΠΎΡΠΊΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²Π° Π² ΠΊΠΎΠ΄Π΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ (ΡΠ°Π½Π΅Π΅ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π»ΠΈΡΡ).
- π ΠΡΠΎΡΠΌΠΎΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ Π² ΠΎΠΊΠ½Π΅
ΠΡΠ»Π°Π΄ΠΊΠ° β ΠΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅. - π Π¨Π°Π³ΠΎΠ²ΡΠΉ ΠΏΡΠΎΡ
ΠΎΠ΄ (
F11) ΠΏΠΎ ΡΠ΅ΠΏΠΎΡΠΊΠ΅ Π²ΡΠ·ΠΎΠ²ΠΎΠ² "ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ β ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ β ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ".
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π Π΅ΠΆΠΈΠΌ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ΅ ΠΊΡΡΠΏΠ½ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ (100+ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²) ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ Π΄ΠΎ 4 ΠΠ ΠΠΠ£ Π½Π° ΠΎΠ΄ΠΈΠ½ ΡΠ΅Π°Π½Ρ.
3. Π Π΅ΠΆΠΈΠΌ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ²ΡΠ·Π΅ΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (RefIntegrity)
ΠΠΎΡΠ»Π΅ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈΠ»ΠΈ ΡΠ±ΠΎΡ ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ Π΄Π°Π½Π½ΡΡ
ΠΈΠ· XML ΡΠ°ΡΡΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ "Π±ΠΈΡΡΠ΅" ΡΡΡΠ»ΠΊΠΈ β ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»Π΅ ΡΠΈΠΏΠ° Π‘ΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ‘ΡΡΠ»ΠΊΠ° ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π½Π΅ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ. Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π’Π΅ΡΡΠΠΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ. Π Π΅ΠΆΠΈΠΌ RefIntegrity Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π³Π»ΡΠ±ΠΎΠΊΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΡΡΠ»ΠΎΡΠ½ΠΎΠΉ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ Π½Π° ΡΡΠΎΠ²Π½Π΅ Π‘Π£ΠΠ.
ΠΠΊΡΠΈΠ²Π°ΡΠΈΡ:
Designer.exe /RefIntegrityCheck Full /Out "C:\temp\ref_log.txt"
ΠΠΎΠ³ ΡΠ°ΠΉΠ»Π° Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ:
- π Π‘ΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ Π±ΠΈΡΡΡ ΡΡΡΠ»ΠΎΠΊ Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΡΠ°Π±Π»ΠΈΡ ΠΈ ΠΏΠΎΠ»Π΅ΠΉ.
- π ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ (Π·Π°ΠΌΠ΅Π½Π° Π½Π°
NULLΠΈΠ»ΠΈ Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΠΉ Π²Π°Π»ΠΈΠ΄Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ). - β οΈ ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ ΠΏΠΎΡΠ΅ΡΠ΅ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ.
| Π’ΠΈΠΏ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ | ΠΡΠΈΠΌΠ΅Ρ | Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡ |
|---|---|---|
| Π‘ΡΡΠ»ΠΊΠ° Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ | Π‘ΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ.ΠΠΎΠΌΠ΅Π½ΠΊΠ»Π°ΡΡΡΠ°.000000005 (ΠΎΠ±ΡΠ΅ΠΊΡ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ) | ΠΠ°ΠΌΠ΅Π½ΠΈΡΡ Π½Π° NULL ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ |
| Π¦ΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΡΡΠ»ΠΊΠ° | ΠΠΎΠΊΡΠΌΠ΅Π½Ρ.Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ.1 β ΠΠΎΠΊΡΠΌΠ΅Π½Ρ.Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ.2 β ΠΠΎΠΊΡΠΌΠ΅Π½Ρ.Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ.1 | Π Π°Π·ΠΎΡΠ²Π°ΡΡ ΡΠΈΠΊΠ» Π²ΡΡΡΠ½ΡΡ |
| ΠΠ΅ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² | ΠΠΎΠ»Π΅ ΠΠΎΠ½ΡΡΠ°Π³Π΅Π½Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΠΎΠΌΠ΅Π½ΠΊΠ»Π°ΡΡΡΡ | ΠΡΠΈΡΡΠΈΡΡ ΠΏΠΎΠ»Π΅ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π½Π°Π·Π½Π°ΡΠΈΡΡ ΡΠΈΠΏ |
Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ RefIntegrity Π½Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ?
ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ΅ΠΆΠΈΠΌ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ /DeepScan β ΠΎΠ½ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ»ΠΊΠΈ, Π½ΠΎ ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΡΠ°Π±Π»ΠΈΡ. ΠΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡΡ Π² 3-5 ΡΠ°Π·, Π½ΠΎ Π±ΡΠ΄ΡΡ Π½Π°ΠΉΠ΄Π΅Π½Ρ ΡΠΊΡΡΡΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΡΠ±Π»ΠΈΠΊΠ°ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ.
4. Π Π΅ΠΆΠΈΠΌ ΡΠΌΡΠ»ΡΡΠΈΠΈ ΡΡΠ°ΡΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ (CompatibilityMode)
ΠΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Ρ 1Π‘ 8.2 Π½Π° 8.3 (ΠΈΠ»ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠ°ΠΆΠΎΡΠ½ΡΠΌΠΈ Π²Π΅ΡΡΠΈΡΠΌΠΈ 8.3.x) ΠΈΠ½ΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠ². ΠΠΌΠ΅ΡΡΠΎ ΡΡΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³Π° ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΠ΅ΠΆΠΈΠΌ ΡΠΌΡΠ»ΡΡΠΈΠΈ ΡΡΠ°ΡΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ. ΠΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, Π½ΠΎ ΠΎΠ½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠ»ΠΎΠΆΠΈΡΡ Π΄ΠΎΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° ΠΏΠ΅ΡΠΈΠΎΠ΄ ΠΏΠΈΠΊΠΎΠ²ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΈ.
ΠΡΠΈΠΌΠ΅ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²:
Enterprise.exe /CompatibilityMode 8.2.19.83 # ΠΠΌΡΠ»ΡΡΠΈΡ 8.2
Designer.exe /CompatibilityMode 8.3.10.2561 # ΠΡΠΊΠ°Ρ ΠΊ ΡΠ°Π½Π½Π΅ΠΉ 8.3
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π ΡΡΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΎΡΠΊΠ»ΡΡΠ°ΡΡΡΡ:
- π« ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ², Π²Π²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π² Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡΡ .
- π ΠΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ
ΠΠΠ‘Π‘ΠΠΠΠ‘Π’ΠΠ§ΠΠ«ΠΠΈΠ£ΠΠ ΠΠΠΠ―ΠΠΠ«ΠΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠΎ ΡΡΠ°ΡΡΠΌ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°ΠΌ. - β οΈ ΠΠΎΠ²ΡΠ΅ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ
(Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
Π₯ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΠΠ½Π°ΡΠ΅Π½ΠΈΡ) ΠΌΠΎΠ³ΡΡ Π²Π΅ΡΡΠΈ ΡΠ΅Π±Ρ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎ.
Π Π΅ΠΆΠΈΠΌ ΡΠΌΡΠ»ΡΡΠΈΠΈ β ΡΡΠΎ "ΠΊΠΎΡΡΡΠ»Ρ", Π° Π½Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π΅Π³ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΡΠΈΡΡΠ΅ΠΌΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ.
5. Π Π΅ΠΆΠΈΠΌ ΠΏΡΡΠΌΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π‘Π£ΠΠ (DBDirectAccess)
Π ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΎΡ Π½Π΅ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ Π±Π°Π·Ρ ΠΈΠ·-Π·Π° ΠΎΡΠΈΠ±ΠΎΠΊ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ ) ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ Π‘Π£ΠΠ Π½Π°ΠΏΡΡΠΌΡΡ, ΠΌΠΈΠ½ΡΡ ΡΠ»ΠΎΠΈ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ 1Π‘. ΠΡΠΎΡ ΡΠ΅ΠΆΠΈΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ SQL-Π·Π°ΠΏΡΠΎΡΡ ΠΊ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌ 1Π‘ Π² ΠΎΠ±Ρ ΠΎΠ΄ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ.
ΠΠ»Ρ PostgreSQL:
psql -U postgres -d your_1c_database
SELECT * FROM "_1SJOURN" LIMIT 10; # ΠΡΠΎΡΠΌΠΎΡΡ ΠΆΡΡΠ½Π°Π»Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ
ΠΠ»Ρ MS SQL:
sqlcmd -S your_server -d your_1c_database -Q "EXEC sp_who2" # Π‘ΠΏΠΈΡΠΎΠΊ Π°ΠΊΡΠΈΠ²Π½ΡΡ
ΡΠ΅ΡΡΠΈΠΉ
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΡΡΠΌΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°Π±Π»ΠΈΡΠ°Ρ 1Π‘ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π½Π΅Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌΠΎΠΉ ΠΏΠΎΡΡΠ΅ Π΄Π°Π½Π½ΡΡ . Π Π°Π·ΡΠ΅ΡΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΠΌ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠ° ΠΏΠΎ Π‘Π£ΠΠ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΡΠ½ΡΡ ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ:
-- ΠΠ»Ρ PostgreSQL
SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'your_1c_database' AND state = 'idle in transaction';
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ |Π‘ΠΎΠ·Π΄Π°ΡΡ Π±ΡΠΊΠ°ΠΏ ΠΏΠ΅ΡΠ΅Π΄ Π»ΡΠ±ΡΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ|ΠΡΠΎΠ²Π΅ΡΡΡΡ Π·Π°ΠΏΡΠΎΡΡ Π½Π° ΡΠ΅ΡΡΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ Π±Π°Π·Ρ|ΠΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ (_1S*)|Π€ΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π² ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π΅-->
6. Π Π΅ΠΆΠΈΠΌ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ (PerfTestMode)
Π‘ΠΊΡΡΡΡΠΉ ΡΠ΅ΠΆΠΈΠΌ PerfTestMode ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ Π³Π»ΡΠ±ΠΎΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠΈΡΡΠ΅ΠΌΡ. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΠΡΡΠ½Π°Π»Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ, ΠΎΠ½ ΡΠΈΠΊΡΠΈΡΡΠ΅Ρ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° Π² Π·Π°ΠΏΡΠΎΡΠ°Ρ
, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΡ ΠΏΠ»Π°Π½Π° ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΄Π°Π½Π½ΡΡ
ΠΏΠΎ ΡΠ΅ΡΠΈ.
ΠΠ°ΠΏΡΡΠΊ:
Designer.exe /PerfTestMode Full /PerfTestOutput "C:\logs\perf.log"
Π Π»ΠΎΠ³ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ:
- β±οΈ ΠΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°
WHERE,JOIN,GROUP BY. - π Π‘ΡΠ°ΡΠΈΡΡΠΈΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² (ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½Ρ, ΠΏΠΎΡΠ΅ΠΌΡ).
- π ΠΠ°Π½Π½ΡΠ΅ ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π±ΡΡΠ΅ΡΠ° Π·Π°ΠΏΡΠΎΡΠΎΠ² (Π΅ΡΠ»ΠΈ Π·Π°ΠΏΡΠΎΡ ΡΡΠ΅Π±ΡΠ΅Ρ >100 ΠΠ ΠΏΠ°ΠΌΡΡΠΈ).
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΠΎΠ³ ΠΌΠΎΠΆΠ΅Ρ Π΄ΠΎΡΡΠΈΠ³Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π³ΠΈΠ³Π°Π±Π°ΠΉΡ Π·Π° ΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ. ΠΡΠ΅Π³Π΄Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΠΉΡΠ΅ Π²ΡΠ΅ΠΌΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΈΠ»ΡΡΡΡ:
/PerfTestFilter "ΠΠΎΠΊΡΠΌΠ΅Π½Ρ.Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΠ’ΠΎΠ²Π°ΡΠΎΠ²Π£ΡΠ»ΡΠ³"
ΠΠ»Ρ Π°Π½Π°Π»ΠΈΠ·Π° Π»ΠΎΠ³ΠΎΠ² PerfTestMode ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠΈΠ»ΠΈΡΡ 1C:LogAnalyzer (Π²Ρ
ΠΎΠ΄ΠΈΡ Π² Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ). ΠΠ½Π° Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ "ΡΠ·ΠΊΠΈΠ΅ ΠΌΠ΅ΡΡΠ°" Π² Π²ΠΈΠ΄Π΅ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌ.
7. Π Π΅ΠΆΠΈΠΌ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π½ΡΠΌΠΈ Π‘Π£ΠΠ (DBMigrationMode)
ΠΡΠΈΡΠΈΠ°Π»ΡΠ½Π°Ρ ΡΡΠΈΠ»ΠΈΡΠ° 1CV8.Migrate.exe Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ MS SQL ΠΈ PostgreSQL (ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ). Π‘ΠΊΡΡΡΡΠΉ ΡΠ΅ΠΆΠΈΠΌ DBMigrationMode Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ
, ΡΠΌΠ΅Π½ΡΡΠ°Ρ ΡΠΈΡΠΊ ΠΎΡΠΈΠ±ΠΎΠΊ.
ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Ρ MS SQL Π½Π° PostgreSQL:
1CV8.Migrate.exe /SrcDB "SQL:server\instance;db=source_db" /DstDB "PGSQL:host=localhost;db=dest_db" /DBMigrationMode Safe
ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ΅ΠΆΠΈΠΌΠ°:
- π ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ²
NVARCHARβTEXT. - π Π‘ΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈΡΡΠΎΡΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (
_1SHistory) Π΄Π°ΠΆΠ΅ ΠΏΡΠΈ ΡΠ±ΠΎΡΡ . - β οΈ ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ ΡΡΡΠ»ΠΎΠΊ ΠΏΠΎΡΠ»Π΅ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ.
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π Π΅ΠΆΠΈΠΌ Safe ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ Π½Π° 30-50%, Π½ΠΎ ΡΠ½ΠΈΠΆΠ°Π΅Ρ ΡΠΈΡΠΊ ΠΏΠΎΡΠ΅ΡΠΈ Π΄Π°Π½Π½ΡΡ
Π΄ΠΎ 0.1% (ΠΏΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ΅ 1Π‘).
FAQ: ΠΡΠ²Π΅ΡΡ Π½Π° ΡΠ°ΡΡΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ
ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈ ΡΠ΅ΠΆΠΈΠΌΡ Π² ΠΎΠ±Π»Π°ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ 1Π‘ (1C:Fresh)?
ΠΠ΅Ρ, Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠΊΡΡΡΡΡ
ΡΠ΅ΠΆΠΈΠΌΠΎΠ² ΡΡΠ΅Π±ΡΡΡ ΠΏΡΡΠΌΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΎΡΡ. Π 1C:Fresh Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ β ΡΠ΅ΠΆΠΈΠΌ CompatibilityMode, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠ΅Π· ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ 1Π‘ ΠΏΠΎ Π·Π°ΠΏΡΠΎΡΡ.
ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π΅ΡΠ»ΠΈ ΡΠ΅ΠΆΠΈΠΌ TransactonIsolation ΠΏΡΠΈΠ²Π΅Π» ΠΊ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°ΠΌ?
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΎΡΠ΅:
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΠ£ΡΠΎΠ²Π΅Π½ΡΠΠ·ΠΎΠ»ΡΡΠΈΠΈΠ’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ(Π£ΡΠΎΠ²Π΅Π½ΡΠΠ·ΠΎΠ»ΡΡΠΈΠΈΠ’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ.ΠΠΎΠ£ΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ);
ΠΡΠ»ΠΈ Π±Π°Π·Π° "ΠΏΠΎΠ΄Π²ΠΈΡΠ»Π°", ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΡΠ»ΡΠΆΠ±Ρ ragent (Π΄Π»Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ°) ΠΈΠ»ΠΈ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π°Π²Π΅ΡΡΠΈΡΠ΅ ΡΠ΅ΡΡΠΈΠΈ Π² Π‘Π£ΠΠ (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» DBDirectAccess).
ΠΠ΄Π΅ Ρ ΡΠ°Π½ΠΈΡΡΡ Π»ΠΎΠ³ ΡΠ΅ΠΆΠΈΠΌΠ° RefIntegrity?
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ β Π² Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (%TEMP%\1C\1cv8\RefIntegrity\). ΠΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ /Out. ΠΠΎΠ³ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ CSV, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΡΡΡΡ Π² Excel Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π°.
ΠΠΎΡΠ΅ΠΌΡ ΡΠ΅ΠΆΠΈΠΌ ExtensionDebug Π½Π΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π² ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΈ?
Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ:
- Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΎ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ (Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ).
- ΠΠ΅ΡΡΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π½Π΅ Π½ΠΈΠΆΠ΅ 8.3.14.1694.
- Π ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ
Π·Π°ΠΏΡΡΠΊΠ° ΡΠΊΠ°Π·Π°Π½
/ExtensionDebugMode Full(Π½Π΅Basic).
ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π·Π°ΠΏΡΡΠΊ ΡΡΠΈΡ ΡΠ΅ΠΆΠΈΠΌΠΎΠ² ΡΠ΅ΡΠ΅Π· bat-ΡΠΊΡΠΈΠΏΡ?
ΠΠ°, ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΊΡΠΈΠΏΡΠ° Π΄Π»Ρ Π΅ΠΆΠ΅Π½Π΅Π΄Π΅Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΡΡΠ»ΠΎΡΠ½ΠΎΠΉ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ:
@echo off
"C:\Program Files\1cv8\8.3.20.1549\bin\designer.exe" /IBName "ΠΡΡ
Π³Π°Π»ΡΠ΅ΡΠΈΡ" /N "ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ" /P "password" /RefIntegrityCheck Full /Out "C:\Logs\RefIntegrity_%date%.log"
pause
ΠΠ»Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Ρ
ΡΠ°Π½ΠΈΡΠ΅ ΠΏΠ°ΡΠΎΠ»ΠΈ Π² 1Π‘:Π₯ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ 1C:EDT Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ².