ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π°Π· Π΄Π°Π½Π½ΡΡ 1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅ ΡΠ°ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎ ΡΠ΅ΡΠ°ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΎΡΠ° ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ°ΠΊΠΈΡ Π·Π°Π΄Π°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ»Π½Π°Ρ ΠΈΠ»ΠΈ Π²ΡΠ±ΠΎΡΠΎΡΠ½Π°Ρ ΠΎΡΠΈΡΡΠΊΠ° ΡΠ°Π±Π»ΠΈΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠΎΠ², ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΌΠ΅ΡΡΠ° Π½Π° Π΄ΠΈΡΠΊΠ΅ ΠΈΠ»ΠΈ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½ΠΈΡ. ΠΡΡΠΌΠΎΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ Π‘Π£ΠΠ ΡΠ΅ΡΠ΅Π· SQL-Π·Π°ΠΏΡΠΎΡΡ Π΄Π°Π΅Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ Π³ΠΈΠ±ΠΊΠΎΡΡΡ, Π½ΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ Π³Π»ΡΠ±ΠΎΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΡΡΡΡΠΊΡΡΡΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ 1Π‘.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ Π·Π°ΠΏΠΈΡΠΈ ΠΈΠ· ΡΠ΅Π³ΠΈΡΡΡΠΎΠ², Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ·ΡΠΊ Transact-SQL (Π΄Π»Ρ MS SQL Server) ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠ΅ Π΄ΠΈΠ°Π»Π΅ΠΊΡΡ Π΄Π»Ρ PostgreSQL. ΠΠ°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ Π»ΡΠ±ΠΎΠ΅ Π²ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΡΡΠ²ΠΎ Π½Π° ΡΡΠΎΠ²Π½Π΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΌΠΈΠ½ΡΡΡΠ΅Ρ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ Π·Π° ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡ ΡΡΡΠ»ΠΎΠΊ ΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΡ ΠΈΡΠΎΠ³ΠΎΠ² ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π»ΠΎΠΆΠΈΡΡΡ Π½Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ°. ΠΠ΅ΡΠ΅Π΄ Π½Π°ΡΠ°Π»ΠΎΠΌ Π»ΡΠ±ΡΡ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΉ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠ²Π΅ΠΆΠ°Ρ ΡΠ΅Π·Π΅ΡΠ²Π½Π°Ρ ΠΊΠΎΠΏΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎ-Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ Π±Π°Π·Ρ.
ΠΡΠΎΡΠ΅ΡΡ ΠΎΡΠΈΡΡΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ Π²Π°ΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΎΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡΡ Π΄ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ΅ΡΠΎΠΌ ΠΈΡΠΎΠ³ΠΎΠ² ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΡ
ΠΏΠΎΠ»Π΅ΠΉ. ΠΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ: ΠΎΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠΎΠ²ΡΡ
Π΄Π°Π½Π½ΡΡ
Π΄ΠΎ Π±ΠΎΡΡΠ±Ρ Ρ Β«ΡΠ°Π·Π΄ΡΠ²Π°Π½ΠΈΠ΅ΠΌΒ» ΡΠ°Π±Π»ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡ. ΠΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ TRUNCATE ΠΈ DELETE ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π±ΠΎΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Π±Π΅Π· ΠΏΠΎΡΠ΅ΡΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΌΠ΅ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π»ΡΠ±ΠΎΠΉ Π΄Π΅ΡΡΡΡΠΊΡΠΈΠ²Π½ΡΠΉ Π·Π°ΠΏΡΠΎΡ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΎΡ ΡΠ°Π±ΠΎΡΡ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ
. ΠΡΠ»ΠΈ Π² ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ DELETE ΠΈΠ»ΠΈ TRUNCATE ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΠΈΠ»ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°ΠΌ (deadlock) ΠΈΠ»ΠΈ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ Π±Π°Π·Ρ Π² ΠΌΠΎΠ½ΠΎΠΏΠΎΠ»ΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ ΠΈΠ»ΠΈ Π·Π°Π²Π΅ΡΡΠΈΡΡ Π²ΡΠ΅ Π°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΡΠ΅Π°Π½ΡΡ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠ° 1Π‘.
ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΡΡΠ°ΠΏΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΠΉ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ (.bak Π΄Π»Ρ MS SQL ΠΈΠ»ΠΈ Π΄Π°ΠΌΠΏΠ° Π΄Π»Ρ PostgreSQL). ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ²Π΅ΡΠ΅Π½Ρ Π² ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°, ΡΠ΅Π»ΠΎΠ²Π΅ΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°ΠΊΡΠΎΡ ΠΈΠ»ΠΈ ΡΠΊΡΡΡΡΠ΅ ΡΡΠΈΠ³Π³Π΅ΡΡ ΠΌΠΎΠ³ΡΡ ΡΡΠ³ΡΠ°ΡΡ Π·Π»ΡΡ ΡΡΡΠΊΡ. ΠΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ· Π±ΡΠΊΠ°ΠΏΠ° β ΡΡΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π²Π΅ΡΠ½ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Π² ΡΠ°Π±ΠΎΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΠ°ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ.
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠΉΡΠ΅ ΠΎΡΠΈΡΡΠΊΡ ΡΠ°Π±Π»ΠΈΡ Π² ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ Π±Π°Π·Π΅ Π² ΡΠ°ΡΡ ΠΏΠΈΠΊΠΎΠ²ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΈ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΡΠ°Π±ΠΎΡΡ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΡ ΠΈ ΠΏΠΎΡΠ΅ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΡ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ Π΅ΡΠ΅ Π½Π΅ Π±ΡΠ»ΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ.
ΠΠ»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠ΅ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΡ Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° ΠΈΠ»ΠΈ Π²Π»Π°Π΄Π΅Π»ΡΡΠ° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ (db_owner). Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ 1Π‘, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΉΡΡ ΡΠ΅ΡΠ΅Π· ODBC ΠΈΠ»ΠΈ Π½Π°ΡΠΈΠ²Π½ΡΠΉ Π΄ΡΠ°ΠΉΠ²Π΅Ρ, ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠ΅ ΠΏΡΠ°Π²Π° Π½Π° ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΡΠ°Π±Π»ΠΈΡ ΠΈ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ . Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Π°Ρ SQL-ΠΊΠ»ΠΈΠ΅Π½Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, SSMS ΠΈΠ»ΠΈ DBeaver) Π½Π°ΡΡΡΠΎΠ΅Π½ Π½Π° ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ , ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΈΠΌΠ΅Π½ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ Π±Π°Π·Ρ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² 1Π‘.
βοΈ ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΠΊ SQL-ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌ
Π Π°Π·Π»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ DELETE ΠΈ TRUNCATE Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ 1Π‘
ΠΡΠΈ ΠΎΡΠΈΡΡΠΊΠ΅ ΡΠ°Π±Π»ΠΈΡ Π² SQL Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
. ΠΠΎΠΌΠ°Π½Π΄Π° DELETE ΡΠ΄Π°Π»ΡΠ΅Ρ ΡΡΡΠΎΠΊΠΈ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ, Π·Π°ΠΏΠΈΡΡΠ²Π°Ρ ΠΊΠ°ΠΆΠ΄ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π² ΠΆΡΡΠ½Π°Π» ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠΊΠ°ΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π½ΠΎ ΠΏΡΠΈ Π±ΠΎΠ»ΡΡΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΌΠ΅ Π΄Π°Π½Π½ΡΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΎΡΠ΅Π½Ρ Π΄ΠΎΠ»Π³ΠΎ ΠΈ ΡΠΈΠ»ΡΠ½ΠΎ Π½Π°Π³ΡΡΠΆΠ°ΡΡ Π΄ΠΈΡΠΊΠΎΠ²ΡΡ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, DELETE Π½Π΅ ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅Ρ ΡΡΠ΅ΡΡΠΈΠΊΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² (identity), Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅.
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π½Π΅Π΅, ΠΊΠΎΠΌΠ°Π½Π΄Π° TRUNCATE TABLE ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π±ΡΡΡΡΠ΅Π΅ ΠΈ ΠΏΠΎΡΡΠ΅Π±Π»ΡΠ΅Ρ ΠΌΠ΅Π½ΡΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ
ΡΠ΅ΡΡΡΡΠΎΠ², ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° deallocates ΡΡΡΠ°Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΡ
, Π° Π½Π΅ ΡΠ΄Π°Π»ΡΠ΅Ρ ΡΡΡΠΎΠΊΠΈ ΠΏΠΎΡΡΡΠΎΡΠ½ΠΎ. ΠΠ΄Π½Π°ΠΊΠΎ Ρ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΅ΡΡΡ ΡΠ΅ΡΡΠ΅Π·Π½ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π² ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ΅ 1Π‘. ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ
, TRUNCATE Π½Π΅Π»ΡΠ·Ρ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΊ ΡΠ°Π±Π»ΠΈΡΠ΅, Π½Π° ΠΊΠΎΡΠΎΡΡΡ Π΅ΡΡΡ ΡΡΡΠ»ΠΊΠΈ ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ
ΡΠ°Π±Π»ΠΈΡ ΡΠ΅ΡΠ΅Π· Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΊΠ»ΡΡΠΈ (foreign keys). ΠΠΎ-Π²ΡΠΎΡΡΡ
, ΠΎΠ½Π° Π½Π΅ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π΄Π»Ρ ΡΠ°Π±Π»ΠΈΡ, ΡΡΠ°ΡΡΠ²ΡΡΡΠΈΡ
Π² ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΈΠΌΠ΅ΡΡΠΈΡ
Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΡΡΠΈΠ³Π³Π΅ΡΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ TRUNCATE Π² 1Π‘ ΡΠ°ΡΡΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π»Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ
ΡΠ°Π±Π»ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠΎΠ² ΠΈΠ·-Π·Π° ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΡΡΡΠ»ΠΎΠΊ. ΠΠ»Π°ΡΡΠΎΡΠΌΠ° 1Π‘ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΡΠ»ΠΊΠΈ ΡΠΈΠΏΠ° Ref, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΡΠ΅ΡΠ΅Π· Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΊΠ»ΡΡΠΈ Π½Π° ΡΡΠΎΠ²Π½Π΅ Π‘Π£ΠΠ. ΠΠΎΠΏΡΡΠΊΠ° ΡΡΠ΅ΡΡ ΡΠ°ΠΊΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π²ΡΠ·ΠΎΠ²Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ Π½Π°ΡΡΡΠ΅Π½ΠΈΡ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ ΡΡΡΠ»ΠΎΡΠ½ΡΡ
Π΄Π°Π½Π½ΡΡ
. ΠΠΎΡΡΠΎΠΌΡ Π² 90% ΡΠ»ΡΡΠ°Π΅Π² Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ°ΠΌ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ DELETE, ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΡ Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ.
ΠΠΎΡΠ΅ΠΌΡ TRUNCATE Π±ΡΡΡΡΠ΅Π΅ DELETE?
ΠΠΎΠΌΠ°Π½Π΄Π° TRUNCATE Π½Π΅ Π»ΠΎΠ³ΠΈΡΡΠ΅Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, Π° Π»ΠΈΡΡ ΡΠΈΠΊΡΠΈΡΡΠ΅Ρ ΡΠ°ΠΊΡ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΡΡΠ°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π² ΠΆΡΡΠ½Π°Π»Π΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ. ΠΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠΉ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΠ°Π±Π»ΠΈΡΡ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ DELETE ΡΡΠ΅Π±ΡΠ΅Ρ Π·Π°ΠΏΠΈΡΠΈ Π»ΠΎΠ³Π° Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ΄Π°Π»ΡΠ΅ΠΌΠΎΠΉ ΡΡΡΠΎΠΊΠΈ.
ΠΡΠ»ΠΈ Π²Π°ΡΠ° ΡΠ΅Π»Ρ β ΠΎΡΠΈΡΡΠΈΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΠΈΠ»ΠΈ ΡΠ°Π±Π»ΠΈΡΡ ΡΠ΅Π³ΠΈΡΡΡΠ° ΡΠ²Π΅Π΄Π΅Π½ΠΈΠΉ, Π³Π΄Π΅ Π½Π΅Ρ Π²Π½Π΅ΡΠ½ΠΈΡ
ΠΊΠ»ΡΡΠ΅ΠΉ, TRUNCATE Π±ΡΠ΄Π΅Ρ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΡΠΌ Π²ΡΠ±ΠΎΡΠΎΠΌ. ΠΠ»Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ
ΡΠ°Π±Π»ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ DELETE Ρ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ΠΌ WHERE, ΡΡΠΎΠ±Ρ Π½Π΅ Π·Π°ΡΡΠΎΠ½ΡΡΡ ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΡΠΉΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΡΡΠΈΡΠΌΠΈ.
ΠΡΠΈΡΡΠΊΠ° ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½ΠΈΡ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ²
Π‘Π°ΠΌΠ°Ρ ΡΠ°ΡΡΠ°Ρ Π·Π°Π΄Π°ΡΠ° β ΠΎΡΠΈΡΡΠΊΠ° Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½ΠΈΡ ΠΏΡΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ². Π 1Π‘ Π΄Π°Π½Π½ΡΠ΅ Ρ
ΡΠ°Π½ΡΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°, Π½ΠΎ ΠΈ Π² ΡΠ°Π±Π»ΠΈΡΠ°Ρ
Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ (_AccRegRg, _AccRegRgInfo ΠΈ Ρ.Π΄.). ΠΡΠΎΡΡΠΎΠ΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π½Π΅ ΠΎΡΠΈΡΡΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°Π±Π»ΠΈΡΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ, Π΅ΡΠ»ΠΈ ΡΡΠΈΠ³Π³Π΅ΡΡ Π½Π΅ Π½Π°ΡΡΡΠΎΠ΅Π½Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ (Π² ΡΠΈΠΏΠΎΠ²ΡΡ
ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡ
ΡΡΠΈΠ³Π³Π΅ΡΡ Π½Π° ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΡΡΡΡΡΡΠ²ΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ).
ΠΠ»Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΠΎΡΠΈΡΡΠΊΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ½Π°ΡΠ°Π»Π° ΡΠ΄Π°Π»ΠΈΡΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ, Π° Π·Π°ΡΠ΅ΠΌ ΡΠ°ΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π΄ΠΈΠΊΡΡΠ΅ΡΡΡ ΡΡΡΠ»ΠΎΡΠ½ΠΎΠΉ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡΡ. Π§Π°ΡΡΠΎ ΠΏΡΠΎΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ°ΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ, Π΅ΡΠ»ΠΈ Π² Π±Π°Π·Π΅ Π½Π°ΡΡΡΠΎΠ΅Π½ΠΎ ΠΊΠ°ΡΠΊΠ°Π΄Π½ΠΎΠ΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ (CASCADE DELETE), Π½ΠΎ Π² 1Π‘ ΡΡΠΎ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ ΡΠ΅Π΄ΠΊΠΎ. ΠΠΎΡΡΠΎΠΌΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π²ΡΡΡΠ½ΡΡ ΠΎΡΠΈΡΠ°ΡΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ
Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ ΡΠ΅Π³ΠΈΡΡΡΡ Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½ΠΈΡ ΠΎΡΡΠ°ΡΠΊΠΎΠ². ΠΠΌΡ ΡΠ°Π±Π»ΠΈΡΡ Π² SQL ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΎΡΠΌΠΈΡΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ _AccRegRG. ΠΠ΅ΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π°ΠΆΠ½ΠΎ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΡ ΡΠ°ΡΡΠ΅ΡΠ° ΠΈΡΠΎΠ³ΠΎΠ², Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ.
DELETE FROM _AccRegRG123 WHERE _Period >= '20230101';
DELETE FROM _AccRegRGInfo123 WHERE _Period >= '20230101';
ΠΠΎΡΠ»Π΅ ΠΎΡΠΈΡΡΠΊΠΈ ΡΠ°Π±Π»ΠΈΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΠΏΠ΅ΡΠ΅ΡΡΠ΅Ρ ΠΈΡΠΎΠ³ΠΎΠ². Π SQL ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΡ
ΡΠ°Π±Π»ΠΈΡ, Π½ΠΎ Π½Π°Π΄Π΅ΠΆΠ½Π΅Π΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ 1Π‘ Β«ΠΠ΅ΡΠ΅ΡΡΠ΅Ρ ΠΈΡΠΎΠ³ΠΎΠ²Β» ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΈΡΡΠΊΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° ΡΡΠΈΡΡΠ²Π°Π΅Ρ Π²ΡΠ΅ Π½ΡΠ°Π½ΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ. ΠΡΡΠΌΠΎΠ΅ ΠΎΠ±Π½ΡΠ»Π΅Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ ΠΈΡΠΎΠ³ΠΎΠ² (_AccRegRGT) ΡΠ΅ΡΠ΅Π· SQL ΠΎΠΏΠ°ΡΠ½ΠΎ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΠ°ΡΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ
.
| Π’ΠΈΠΏ ΠΎΠ±ΡΠ΅ΠΊΡΠ° 1Π‘ | ΠΡΠ΅ΡΠΈΠΊΡ ΡΠ°Π±Π»ΠΈΡΡ SQL | ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΎΡΠΈΡΡΠΊΠΈ |
|---|---|---|
| ΠΠΎΠΊΡΠΌΠ΅Π½Ρ | _Doc<ΠΠΌΡ> | Π’ΡΠ΅Π±ΡΠ΅Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ Π²ΡΡΡΠ½ΡΡ |
| Π Π΅Π³ΠΈΡΡΡ Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½ΠΈΡ | _AccRegRG |
ΠΡΠΆΠ΅Π½ ΠΏΠ΅ΡΠ΅ΡΡΠ΅Ρ ΠΈΡΠΎΠ³ΠΎΠ² ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΈΡΡΠΊΠΈ |
| Π Π΅Π³ΠΈΡΡΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΠΉ | _InfoReg<ΠΠΌΡ> | Π§Π°ΡΡΠΎ ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΡΡΠ°Π²Π½ΠΎΠΉ ΠΊΠ»ΡΡ, ΡΠ»ΠΎΠΆΠ΅Π½ Π΄Π»Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ |
| ΠΠ»Π°Π½ Π²ΠΈΠ΄ΠΎΠ² Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊ | _Chart<ΠΠΌΡ> | ΠΠ°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΏΠ»Π°Π½ΠΎΠ² ΡΡΠ΅ΡΠΎΠ², ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠ²ΡΠ·ΠΈ |
Π Π°Π±ΠΎΡΠ° Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ ΠΈ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ
Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ 1Π‘ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΡΠ°Π±Π»ΠΈΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ
, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΡΡΠ΅ΡΠΎΠ² Ρ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ Π²ΡΠ±ΠΎΡΠΊΠ°ΠΌΠΈ ΠΈΠ»ΠΈ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠΎΠ² ΠΠ°ΠΏΡΠΎΡ Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ. ΠΠ½ΠΎΠ³Π΄Π° ΡΡΠΈ ΡΠ°Π±Π»ΠΈΡΡ Π½Π΅ ΡΠ΄Π°Π»ΡΡΡΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΈΠ·-Π·Π° Π°Π²Π°ΡΠΈΠΉΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ΅Π°Π½ΡΠΎΠ², Π·Π°Π½ΠΈΠΌΠ°Ρ ΠΌΠ΅ΡΡΠΎ Π½Π° Π΄ΠΈΡΠΊΠ΅. ΠΠΌΠ΅Π½Π° ΡΠ°ΠΊΠΈΡ
ΡΠ°Π±Π»ΠΈΡ ΡΠ°ΡΡΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΏΡΠ΅ΡΠΈΠΊΡ _Temp ΠΈΠ»ΠΈ GUID ΡΠ΅Π°Π½ΡΠ°.
ΠΡΠΈΡΡΠΊΠ° ΡΠ°ΠΊΠΈΡ
ΡΠ°Π±Π»ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π°, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ²Π΅ΡΠ΅Π½Ρ, ΡΡΠΎ ΠΎΠ½ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΌΠΈ ΡΠ΅Π°Π½ΡΠ°ΠΌΠΈ. ΠΠ΅ΡΠ΅Π΄ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ sys.dm_exec_requests (Π΄Π»Ρ MS SQL), ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ Π² ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ Π°ΠΊΡΠΈΠ²Π½ΡΡ
Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΊ ΡΡΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ. ΠΠ»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΡΡΠΎΠΊ ΠΈΠ»ΠΈ ΡΠ°Π±Π»ΠΈΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ.
Π’Π°ΠΊΠΆΠ΅ ΡΡΠΎΠΈΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ°Π±Π»ΠΈΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ _Locks. Π ΡΠ΅Π΄ΠΊΠΈΡ
ΡΠ»ΡΡΠ°ΡΡ
ΠΏΡΠΈ ΡΠ±ΠΎΡΡ
ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΠ°ΠΌ ΠΌΠΎΠ³ΡΡ ΠΎΡΡΠ°Π²Π°ΡΡΡΡ Β«Π²ΠΈΡΡΡΠΈΠ΅Β» Π·Π°ΠΏΠΈΡΠΈ, Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΠ΅ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΡΡΡΡΠ°ΠΌ. ΠΡΠΈΡΡΠΊΠ° ΡΡΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡΡ Ρ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΡΠ»ΡΠΆΠ±Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° 1Π‘, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΎΠ½Π° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ.
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π‘ΡΡΡΠΊΡΡΡΠ° ΠΈΠΌΠ΅Π½ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ°Π±Π»ΠΈΡ ΠΈ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΠΌΠ΅Π½ΡΡΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²Π΅ΡΡΠΈΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ 1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅ (8.2, 8.3, 8.3.20+). ΠΡΠ΅Π³Π΄Π° ΡΠ²Π΅ΡΡΠΉΡΠ΅ΡΡ Ρ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ ΠΈΠ»ΠΈ ΡΡ Π΅ΠΌΠΎΠΉ Π±Π°Π·Ρ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΏΠΎ ΠΌΠ°ΡΠΊΠ΅ ΠΈΠΌΠ΅Π½ΠΈ.
ΠΠ»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΎΡΠΈΡΡΠΊΠΈ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΊΡΠΈΠΏΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ±ΠΈΡΠ°Π΅Ρ Π²ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΠΏΡΠ΅ΡΠΈΠΊΡΠΎΠΌ ΠΈ Π²ΠΎΠ·ΡΠ°ΡΡΠΎΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ 24 ΡΠ°ΡΠΎΠ², Π° Π·Π°ΡΠ΅ΠΌ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ. ΠΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ Π±Π°Π·, Π³Π΄Π΅ ΡΠΎΡΠΌΠΈΡΡΡΡΡΡ ΡΡΠΆΠ΅Π»ΡΠ΅ Π°Π½Π°Π»ΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΡΡΠ΅ΡΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Ρ ΡΠ°Π½ΠΈΠΌΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ sp_spaceused Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΠ°Π±Π»ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΎΡΠΈΡΡΠΊΠΎΠΉ. ΠΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²ΡΡΠ²ΠΈΡΡ ΡΠ°ΠΌΡΠ΅ Β«ΡΠ°Π·Π΄ΡΡΡΠ΅Β» ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π±ΡΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ.
Π‘Π±ΡΠΎΡ ΡΡΠ΅ΡΡΠΈΠΊΠΎΠ² ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² (Identity)
ΠΠΎΡΠ»Π΅ ΠΌΠ°ΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
ΠΈΠ· ΡΠ°Π±Π»ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ
Π°Π²ΡΠΎΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ½ΡΠ΅ ΠΏΠΎΠ»Ρ (ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠΎ ΠΏΠΎΠ»Π΅ _IDRRef ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΠ»ΡΠΆΠ΅Π±Π½ΡΡ
ΡΠ°Π±Π»ΠΈΡΠ°Ρ
, Ρ
ΠΎΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ 1Π‘ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ GUID), ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΡΠ±ΡΠΎΡ ΡΡΠ΅ΡΡΠΈΠΊΠ°. Π 1Π‘ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ β ΡΡΠΎ UUID, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ±ΡΠΎΡΠ° IDENTITY ΠΊΠ°ΡΠ°Π΅ΡΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ
ΡΠ°Π±Π»ΠΈΡ, ΡΠ°Π±Π»ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ ΠΈΠ»ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΠ΅Π³ΠΈΡΡΡΠΎΠ².
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ DELETE, ΡΡΠ΅ΡΡΠΈΠΊ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ Π½ΡΠΌΠ΅ΡΠ°ΡΠΈΡ Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. Π§ΡΠΎΠ±Ρ ΡΠ±ΡΠΎΡΠΈΡΡ Π΅Π³ΠΎ, Π² MS SQL Server ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° DBCC CHECKIDENT. ΠΡΠΎ Π²Π°ΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΎΡΠΈΡΠ°Π΅ΡΠ΅ Π±Π°Π·Ρ Π΄Π»Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ Π½ΡΠ»Ρ ΠΈ Ρ
ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ Π½ΡΠΌΠ΅ΡΠ°ΡΠΈΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ
ΡΠ»ΡΠΆΠ΅Π±Π½ΡΡ
Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π½Π°ΡΠΈΠ½Π°Π»Π°ΡΡ Ρ Π΅Π΄ΠΈΠ½ΠΈΡΡ.
DBCC CHECKIDENT ('_YourTableName', RESEED, 0);
Π PostgreSQL Π°Π½Π°Π»ΠΎΠ³ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ (sequence). ΠΠ΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΡΠ±ΡΠΎΡ ΡΡΠ΅ΡΡΠΈΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°ΠΌ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ Π²ΡΡΠ°Π²ΠΊΠΈ Π½ΠΎΠ²ΡΡ
Π·Π°ΠΏΠΈΡΠ΅ΠΉ, Π΅ΡΠ»ΠΈ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΎΡΡΠ°Π»ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΏΡΠΎΠΏΡΡΡΠΈΠ»ΠΈ ΠΏΡΠΈ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ DELETE.
ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡ 1Π‘ ΠΏΡΡΠΌΠΎΠ΅ Π²ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΡΡΠ²ΠΎ Π² ΠΏΠΎΠ»Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠΎΠ², Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ²) Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π½Π΅ Π½ΡΠΆΠ½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ GUID. Π‘Π±ΡΠΎΡ Π°ΠΊΡΡΠ°Π»Π΅Π½ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ Π΄Π»Ρ ΡΠ°Π±Π»ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΉ, ΠΆΡΡΠ½Π°Π»ΠΎΠ² ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Π‘Π±ΡΠΎΡ ΡΡΠ΅ΡΡΠΈΠΊΠΎΠ² Identity Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°Π±Π»ΠΈΡ. ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ 1Π‘ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ GUID, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΡΡΠ΅Π±ΡΡΡ Π½ΡΠΌΠ΅ΡΠ°ΡΠΈΠΈ ΠΈ Π½Π΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎΡΠ»Π΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ.
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈ ΠΌΠ°ΡΡΠΎΠ²ΠΎΠΌ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡ 1Π‘ ΡΠ΅ΡΠ΅Π· ΠΎΠ΄ΠΈΠ½ Π·Π°ΠΏΡΠΎΡ DELETE ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΆΡΡΠ½Π°Π»Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ (transaction log) ΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌΡ Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Π‘Π£ΠΠ. ΠΡΡΠ½Π°Π» ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΡΠ°ΡΡΠ΅Ρ ΠΏΡΠΎΠΏΠΎΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΠΎΠ±ΡΠ΅ΠΌΡ ΡΠ΄Π°Π»ΡΠ΅ΠΌΡΡ
Π΄Π°Π½Π½ΡΡ
, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ ΡΠ΅ΠΊΠΏΠΎΠΈΠ½Ρ ΠΈΠ»ΠΈ Π±ΡΠΊΠ°ΠΏ Π»ΠΎΠ³Π°. Π§ΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΡΠΎΠ³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΎΠ΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅.
Π‘ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½ΡΡ
Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΠΏΠΎΡΡΠΈΡΠΌΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎ 10 000 ΡΡΡΠΎΠΊ) Ρ ΠΏΠ°ΡΠ·ΠΎΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΡΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΆΡΡΠ½Π°Π»Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡΡΡΡ ΠΈ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ Π½Π°Π΄ΠΎΠ»Π³ΠΎ. Π SQL ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΡΠΈΠΊΠ» WHILE Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π·Π°ΡΡΠΎΠ½ΡΡΡΡ
ΡΡΡΠΎΠΊ.
WHILE (1=1)
BEGIN
DELETE TOP (10000) FROM _LargeTable WHERE _Condition;
IF @@ROWCOUNT = 0 BREAK;
WAITFOR DELAY '00:00:01';
END
Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Π±Π°Π·ΠΎΠΉ, Ρ ΠΎΡΡ ΠΈ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΠ΅ΠΌ. Π’Π°ΠΊΠΆΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΌΠ°ΡΡΠΎΠ²ΡΠΌ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ, Π΅ΡΠ»ΠΈ ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎ, ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΡ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, Π½ΠΎ Π² 1Π‘ ΡΡΠΎ ΡΠΈΡΠΊΠΎΠ²Π°Π½Π½ΠΎ ΠΈΠ·-Π·Π° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ, Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΠΌΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎΠΉ.
ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΎΡΠΈΡΡΠΊΠΈ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΠ΅ΡΠ΅ΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² (ALTER INDEX ... REBUILD) ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ (UPDATE STATISTICS). Π€ΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² ΠΏΠΎΡΠ»Π΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΡΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ ΡΠ½ΠΈΠ·ΠΈΡΡ ΡΠΊΠΎΡΠΎΡΡΡ Π²ΡΠ±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ
Π² 5-10 ΡΠ°Π·, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΡΡΠ°Π·Ρ Π·Π°ΠΌΠ΅ΡΡΡ ΠΊΠ°ΠΊ Β«ΡΠΎΡΠΌΠΎΠ·Π°Β» Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅.
ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΎΡΠΈΡΡΠΈΡΡ ΡΠ°Π±Π»ΠΈΡΡ 1Π‘ ΡΠ΅ΡΠ΅Π· ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ?
ΠΠ°, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Β«Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²Β» ΠΈΠ»ΠΈ Β«ΠΡΡΠΏΠΏΠΎΠ²ΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ²Β» Ρ ΠΎΠΏΡΠΈΠ΅ΠΉ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΏΡΡΠΌΠΎΠ³ΠΎ SQL ΠΈ ΡΡΠ΅Π±ΡΡΡ Π½Π°Π»ΠΈΡΠΈΡ ΠΏΡΠ°Π² Π½Π° ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ². SQL ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° Π½Π΅ ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½.
Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ SQL Π²ΡΠ΄Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ Π½Π°ΡΡΡΠ΅Π½ΠΈΡ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΊΠ»ΡΡΠ° ΠΏΡΠΈ ΠΎΡΠΈΡΡΠΊΠ΅?
ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠ΄Π°Π»ΡΠ΅ΠΌΠ°Ρ Π·Π°ΠΏΠΈΡΡ ΡΡΡΠ»Π°Π΅ΡΡΡ Π½Π° Π΄ΡΡΠ³ΡΡ Π·Π°ΠΏΠΈΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠ΄Π°Π»Π΅Π½Π°, Π»ΠΈΠ±ΠΎ Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΡΡΡΠ»Π°ΡΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ. ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΉΡΠΈ Π²ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ ΠΈ ΠΎΡΠΈΡΠ°ΡΡ ΠΈΡ Π² ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅: ΡΠ½Π°ΡΠ°Π»Π° Β«ΠΏΠΎΡΠΎΠΌΠΊΠΈΒ» (Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ, ΡΠ°Π±Π»ΠΈΡΠ½Π°Ρ ΡΠ°ΡΡΡ), Π·Π°ΡΠ΅ΠΌ Β«ΡΠΎΠ΄ΠΈΡΠ΅Π»ΠΈΒ» (ΡΠ°ΠΏΠΊΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°, ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ).
ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ TRUNCATE Π΄Π»Ρ ΡΠ°Π±Π»ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ?
ΠΠ΅Ρ, Π΄Π»Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠ°Π±Π»ΠΈΡ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ ΠΈ Π΄Π°Π½Π½ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ TRUNCATE ΠΊΡΠ°ΠΉΠ½Π΅ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΠ·-Π·Π° ΠΆΠ΅ΡΡΠΊΠΈΡ ΡΠ²ΡΠ·Π΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΏΠΎΠ»Π½ΠΎΠΉ Π½Π΅ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ Π±Π°Π·Ρ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ TRUNCATE ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠ²Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈΠ»ΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ°Π±Π»ΠΈΡ.
ΠΠ°ΠΊ ΡΠ·Π½Π°ΡΡ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ΅ ΠΈΠΌΡ ΡΠ°Π±Π»ΠΈΡΡ 1Π‘ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ SQL?
ΠΠΌΠ΅Π½Π° ΡΠ°Π±Π»ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π² ΡΡ Π΅ΠΌΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΡΠ΅ΡΠ΅Π· SSMS ΠΈΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² Π·Π°ΠΏΡΠΎΡ ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌ. ΠΠ±ΡΡΠ½ΠΎ ΠΎΠ½ΠΈ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΈΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈΠ· ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΎΡΠ°. Π’ΠΎΡΠ½ΠΎΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ 1Π‘ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ Π·Π°ΠΏΡΠΎΡΠΎΠ².
ΠΡΠΆΠ½ΠΎ Π»ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠ΅ΡΠ²Π΅Ρ 1Π‘ ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΈΡΡΠΊΠΈ ΡΠ°Π±Π»ΠΈΡ ΡΠ΅ΡΠ΅Π· SQL?
ΠΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»Π΅Π½, Π½ΠΎ ΠΆΠ΅Π»Π°ΡΠ΅Π»Π΅Π½ Π΄Π»Ρ ΡΠ±ΡΠΎΡΠ° ΠΊΡΡΠ° ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ ΠΈ ΠΏΠ»Π°Π½ΠΎΠ² Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ° 1Π‘. ΠΠΎΡΠ»Π΅ ΡΠ΅ΡΡΠ΅Π·Π½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΡΡΡΡΠΊΡΡΡΡ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΌΠ° Π΄Π°Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊ ΡΠ»ΡΠΆΠ±Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΡΠ²ΠΈΠ΄ΠΈΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .