АдминистрированиС Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… 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-опСрациям

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 4

Различия ΠΌΠ΅ΠΆΠ΄Ρƒ 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<Имя> Зависит ΠΎΡ‚ ΠΏΠ»Π°Π½ΠΎΠ² счСтов, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ связи
πŸ“Š Какой ΠΌΠ΅Ρ‚ΠΎΠ΄ очистки Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅?
ΠŸΡ€ΡΠΌΠΎΠΉ DELETE Π² SQL
ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° удалСния Π΄Π°Π½Π½Ρ‹Ρ… Π² 1Π‘
TRUNCATE Ρ‚Π°Π±Π»ΠΈΡ†
Π’Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° пустой Π±Π°Π·Ρ‹

Π Π°Π±ΠΎΡ‚Π° с Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ

Π’ процСссС Ρ€Π°Π±ΠΎΡ‚Ρ‹ 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Π‘. ПослС ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ структуры ΠΈΠ»ΠΈ объСма Π΄Π°Π½Π½Ρ‹Ρ… пСрСзапуск слуТбы Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΡƒΠ²ΠΈΠ΄ΠΈΡ‚ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ состояниС Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….