Как уменьшить размер базы данных Azure SQL Server (18 Мбайт данных, загруженных за 5 ГБ серверного пространства)
У меня проблема с Azure SQL DB.
Экспорт Bacpack DB составляет всего 18 МБ, но размер загружаемого DB-сервера превышает 5 ГБ.
Есть ли способ увидеть фактический размер данных?
Есть ли способ переместить DB в простую модель восстановления?
Или есть ли другой способ сокращения файлов журналов?
Или нужно просто отбросить базу данных и восстановить ее из резервной копии?
Ответы
Ответ 1
Проблема вызвана дефрагментированными индексами.
Вы можете найти хорошие сценарии для их исправления:
http://blogs.msdn.com/b/dilkushp/archive/2013/07/28/fragmentation-in-sql-azure.aspx
После запуска скриптов (и 24 часа) размер БД вернулся к 300 МБ.
Ответ 2
Файл bacpac будет значительно меньше, чем DB, поскольку он является сжатой версией данных, и я считаю, что он удаляет такие вещи, как индексный контент, и сохраняет только определения индексов, которые переиндексируются при восстановлении, поэтому не следует указывать другого.
Например, у меня есть база данных на SQL Azure, сконфигурированная как 10-битная версия Premium DB, которая в настоящее время использует 2,7 ГБ, причем BACPACs составляет около 300 МБ
Какую базу данных вы настроили?
Какие настройки, размер и использование вы сейчас показываете.
** Редактировать ** Изображение не было загружено, поэтому внешняя ссылка - http://i.snag.gy/JfsPk.jpg
Следующее, что нужно проверить, - это разбивка по размеру в базе данных по таблице/объекту.
Подключитесь к среде Azure с помощью Management Studio и выполните следующий запрос. который даст разбивку таблицы базы данных с размерами в MB.
select
sys.objects.name, sum(reserved_page_count) * 8.0 / 1024
from
sys.dm_db_partition_stats, sys.objects
where
sys.dm_db_partition_stats.object_id = sys.objects.object_id
group by sys.objects.name