У нас величезна виробнича база даних, її розмір становить близько 300 ГБ. Чи є якийсь підхід до підвищення ефективності запиту на видалення? Зараз швидкість видалення становить від 1-10 к в хвилину, для нас це дуже повільно.
У нас величезна виробнича база даних, її розмір становить близько 300 ГБ. Чи є якийсь підхід до підвищення ефективності запиту на видалення? Зараз швидкість видалення становить від 1-10 к в хвилину, для нас це дуже повільно.
Відповіді:
Якщо ви намагаєтесь видалити велику кількість рядків в одному операторі, то, ймовірно, вас чекає активність журналу. Отже ви можете:
TRUNCATE
або DROP
/ CREATE
.SELECT INTO
щоб перенести дані, які ви хочете зберегти, в іншу таблицю, а TRUNCATE
потім перемістіть невелику частину назад. (Або просто скиньте стару таблицю, перейменуйте нову та повторно застосуйте обмеження / дозволи тощо)CHECKPOINT
очистити журнал замість того, щоб робити резервні копії журналу, але вам потрібно обов’язково встановити його назад та взяти нову повну резервну копію, щоб знову запустити ланцюг журналу. .Існують деякі підказки, але яку версію ви використовуєте? Це корпоративне видання? У будь-якому випадку:
Додайте деталі, коли ви працюєте з великою базою даних, немає жодної дійсної відповіді.
Ви повинні спробувати видалити їх фрагмент за допомогою chunk, ймовірно, видалити в циклі, кожну ітерацію видалення це власна транзакція, а потім очистити журнал в кінці кожної ітерації циклу.
Крім того, вам потрібно буде знайти номер, який ви збираєтеся використовувати як значення в шматок для видалення записів. Це вимагає ретельного тестування, було б краще, якщо ви спершу зможете перевірити значення шматка в UAT.
Про те, як діяти, посилається на розділення великих операцій видалення на шматки
видалення може бути повільним, якщо велика таблиця має рекурсивний зовнішній ключ.
якщо так, знайдіть підходящий час, відключіть служби залежної, відключіть рекурсивний зовнішній ключ, виконайте масове видалення, а потім відновіть зовнішній ключ знову.
Додавання ще кількох балів ...
tablock
варіант.Щоб отримати додаткову допомогу, опублікуйте використаний вами запит, інформацію таблиці та будь-яку інформацію про блокування.