2014-09-26 12 views
1

У меня есть таблица, в которой хранятся двоичные данные. Он имеет 490 409 строк. Когда я суммирую длину базы данных двоичного столбца varbinary(MAX), общий размер составляет около 12 гб.Файл SQL Server MDF становится слишком большим для количества вставленных данных

Однако каждый раз, когда я вставляю новые строки, файлы .MDF растут в ГБ, даже когда я вставляю всего несколько сотен МБ. Auto Grow установлен на 5%. Когда я запустил sp_spaceused на столе, он показывает 0k неиспользованным. И когда я запускаю это против БД, я получаю 345.41 МБ нераспределенного из 16320.56 МБ размера БД.

Что я делаю неправильно, что файлы .MDF растут так много всякий раз, когда я вставляю в эту таблицу даже относительно небольшой объем данных?

ответ

2

При базовом расчете (16320,56 × .05) это 816 МБ, что довольно близко, и если вы учитываете любые дополнительные индексы в других столбцах в этой таблице, то это может учитывать дополнительный размер роста.

В любом случае, я лично откажусь от автографа на основе процентов, особенно если это вас беспокоит и пойдет с приростом роста фиксированного размера.

+0

Показатель очень маленький. Я не понимаю, откуда приходит 4gb ... Что бы вы предложили для фиксированного размера роста? – jdf35w

+0

В идеале я бы предложил предварительно выделить объем пространства, который, по вашему мнению, понадобится базе данных, и полностью отключить автоматический рост. Но иногда это не вариант. Обычно я использую по умолчанию 1 ГБ, но он сильно зависит от того, насколько быстро растет база данных и каково ваше оборудование. Вы стремитесь сбалансировать 2 конкурирующих фактора: достаточно большие приращения, чтобы уменьшить количество ростов, но не настолько велики, что на производительность влияет. – md4