Физическое удаление записей в базе данных

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

Чтобы физически освободить место в базе данных:

- открываем SQL Server Management Studio

- кликаем правой кнопкой по базе данных и выбираем Tasks -> Shrink -> Database

Здесь можно увидеть, сколько выделено дискового пространства под базу данных и сколько из этого пространства свободно. В моем случае в страницах данных свободны 18% и их можно освободить. Тут больше стоит вопрос – а нужно ли? 

18% в наше время это мелочи жизни. Если их освободить, то страницы данных будут заполнены и при вставке новых данных серверу придется выделать эти страницы, что потребует время, что может затормозить процесс вставки данных, особенно, если у вас не SSD диск. 

Файлы базы данных я высвобождал несколько раз после массового удаления данных. Опять же, когда я работал на Sony, то когда мы получали резервную копию с серверов для своих тестов, сразу же запускался процесс удаления всех персональных данных и в реальности база данных значительно сокращалась. После массового удаления персональных данных я освобождал свободное пространство, но все равно оставлял около 10% свободными. 

Точно так же можно освободить и журнал транзакций. Это мне приходилось несколько раз делать, когда мы сталкивались с плохим запросом, который выгребал из базы данных слишком много данных. Такой запрос приводил к тому, что журнал рос до предела и потом нужно было освободить пространство. Для журнала так же желательно иметь пустое пространство. Даже если вы освобождаете место, обязательно оставьте пустое пространство. 

Комментарии

Паника, что-то случилось!!! Ничего не найдено в комментариях. Срочно нужно что-то добавить, чтобы это место не оставалось пустым.

Добавить Комментарий

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне