Мне нужно сжать базу данных ок. 1 ТБ уменьшился примерно до 700 ГБ (остается 200+ ГБ для роста без расширения). У меня есть скрипт, который будет зацикливать и сжимать базу данных с заданным шагом (например, 1 ГБ). Это очень полезно, если вам пришлось прервать в любое время, потому что прогресс не теряется, общая операция сжатия может длиться 4-5 дней. Вопрос в том, приведет ли сжатие файла базы данных к большей фрагментации или нет? Спасибо!!
сжимать файл базы данных одним выстрелом или поэтапно?
Ответы (2)
(Это основано на MS SQL Server. Ваш пробег может отличаться от других СУБД.)
Если бы все остальное было равным, я подозреваю, что вы не подверглись бы большей фрагментации, ошибаясь, фрагментируя свой процесс сжатия. Когда файлы сжимаются, SQL, возможно, придется перемещать данные внутри, со страниц, которые будут удалены, на пустые страницы, которые не будут удалены. Кажется вероятным, что если бы блоки A, B и C были перемещены в X, Y и Z, а затем удалены из файла базы данных, то выполнение этого действия в три этапа приведет к такой же фрагментации, как и выполнение в три этапа.
Проблема, которую я вижу, заключается в том, что если вы сначала «уменьшите» блок A, и прежде чем вы начнете работать над блоком B, будет загружено больше данных, в результате чего база данных будет хранить данные в блоке D — разделе, который ранее был пустым и нацелены на возможную усадку? Хуже того, что, если для добавления новых данных потребуется воссоздать блок A, который затем придется снова сжимать?
Это попытка высокого уровня описать то, о чем я знаю только внешний вид. Я подозреваю, что многократное сжатие может привести к большей фрагментации хотя бы из-за дополнений к базе данных между сеансами сжатия. Чем меньше у вас сеансов, тем, вероятно, лучше.
Пожалуйста, обратитесь к ссылкам ниже для получения более подробной информации о том, «Почему вам НЕ СЛЕДУЕТ СЖАТАТЬ вашу базу данных или не нажимайте кнопку сжатия».
http://www.sqlskills.com/BLOGS/PAUL/post/Why-you-should-not-shrink-your-data-files.aspx http://sqlinthewild.co.za/index.php/2007/09/ 08/уменьшение баз данных/
ХТН, \К