#sql-server #database
#sql-server #База данных
Вопрос:
У нас есть собственный устаревший SQL Server, который в настоящее время используется третьей стороной для хранения данных, которые мы должны хранить в течение ряда лет. К сожалению, этот SQL Server является старым сервером на базе Windows Server 2003 / SQL Server 2005, и у меня больше нет места для расширения дисков.
Возникающая проблема заключается в том, что накопитель достигает критической массы до такой степени, что резервное копирование и последующее усечение журналов транзакций — это то, что поддерживает работу БД из-за свободного места, однако это достигнет точки, когда это достигнет максимума.
Я скопировал данные за несколько лет в базу данных SQL Azure, а затем удалил соответствующие строки из БД, однако файл БД остается большого размера.
Согласно свойствам базы данных, доступно 45929,45 МБ свободного места, могу ли я в любом случае уменьшить эту базу данных с ее размера 218912,00 МБ примерно на 30 ГБ, чтобы на самом диске было больше свободного места (на том же диске находятся ДРУГИЕ файлы базы данных).).
Я читал, что сокращение базы данных — плохая практика из-за фрагментации, но я дохожу до того, что с моим ограниченным SQL мне нужно это исправить.
Может кто-нибудь указать мне правильное направление.
Комментарии:
1. Регулярное сокращение может быть плохим, но одноразовое освобождение места после большого удаления, вероятно, подойдет, особенно если вы переиндексируете его впоследствии.
2. Можете ли вы указать свои резервные копии на другой диск? Общий сетевой ресурс?
3. @WEI_DBA Это не резервные копии, занимающие место — это фактический размер БД.
4. ОК. Спасибо за разъяснения. Вы определенно можете уменьшить DB. Посмотрите также на свои файлы журнала транзакций. Их можно сокращать ежедневно после создания резервных копий T-Log. Возможно, вы захотите посмотреть на используемое пространство индекса. Если были созданы ненужные индексы, они могут занимать много места в вашем файле данных.