Очистка безумно большого стола - PullRequest
0 голосов
/ 05 марта 2019

У меня есть резервная таблица, которая - из-за плохо спланированного управления программистом, который плохо разбирается в математике, - содержит 3,5 млрд. записей.Диск данных почти заполнен, производительность страдает.Мне нужно очистить эту таблицу, но простое утверждение SELECT COUNT (1) занимает 30 или более минут, чтобы вернуться.

В таблице нет первичного ключа.

В базе данных используется ПРОСТОЕ ведение журнала.На диске осталось только 25 ГБ, поэтому я должен помнить, что все, что я делаю, должно оставлять место для базы данных, чтобы она продолжала функционировать для всех остальных.Я жду подтверждения, когда набираю это, но я не думаю, что мне нужно сохранять какие-либо данные, которые там находятся сейчас.

В таблице с таким количеством записей TRUNCATE TABLE будет измельчать системук остановке?

Также ищем решения, предложенные здесь: Как удалить большие данные таблицы в SQL без журнала?

Идея состоит в том, чтобы позволить моим клиентампродолжай работать, пока я все это делаю.

1 Ответ

0 голосов
/ 05 марта 2019

Усеченная таблица будет работать, если вам больше не нужны записи. Это не уменьшит размер базы данных. Если вам нужно сделать это, вам нужно будет сжать файл данных.

Если вы предпочитаете удалить записи, Аарон Бертран имеет хорошие примеры и результаты тестов, которые он нашел здесь: https://sqlperformance.com/2013/03/io-subsystem/chunk-deletes

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...