Основная файловая группа - полный SQL Server 2008

15

У меня есть большая таблица (~ 50 миллионов строк), я пытаюсь массово вставить в SQL Server, и я получаю сообщение об ошибке:

Не удалось выделить место для объекта «myDB» в базе данных «I 3 Stroke», поскольку файловая группа «PRIMARY» заполнена. Создайте дисковое пространство, удаляя ненужные файлы, удаляя объекты в файловой группе, добавляя дополнительные файлы в файловую группу или устанавливая автоматический рост для существующих файлов в файловой группе.

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

Для такой ситуации, как это лучше всего решить, чтобы SQL Server не жаловался? Будет ли решение иметь значение, что эта БД не будет открыта для нескольких пользователей?

wootscootinboogie
источник
2
Вам нужно добавить больше места в базу данных или удалить неиспользуемые объекты. Какой у Вас вопрос?
Гордон Линофф
@GordonLinoff, когда база данных была создана, файловая группа была разработана для неограниченного роста, и все же я сталкиваюсь с этой проблемой. Я надеюсь найти способ предотвратить это снова.
wootscootinboogie
1
У вас есть больше свободного места на физическом диске? Если это так, проверьте журналы ошибок SQL Server и посмотрите, есть ли дополнительная информация о том, почему произошел сбой автоматического роста.
Кевин
Не могли бы вы подтвердить, что на диске достаточно места? Это единственная правдоподобная причина, за исключением ограниченного роста файлов (что, как вы сказали, не так).
USR
1
Может быть, вы достигаете предела размера дБ в SQL Express.
Бруно Мартинес

Ответы:

17

Следуй этим шагам:

  1. Определите, сколько места вы хотите добавить к выделенному хранилищу базы данных:
    1. Проводник открытых окон
    2. Щелкните правой кнопкой мыши на диске, на котором существуют файлы вашей базы данных.
    3. Выберите свойства
    4. Проверьте, сколько дискового пространства доступно, и решите, сколько из этого вы хотите выделить для базы данных
      ( Предложение: Оставьте по крайней мере 20% свободного места на диске, если вы разместите файлы базы данных на том же диске, что и ваша ОС. { Подсказка : Дон не делайте этого! Перестройте / перенесите ваши данные на свой собственный диск; вы ввернули себя в операции ввода-вывода.} и оставьте как минимум 8% для диска с чистыми данными; есть. )
  2. Обновите распределение памяти для базы данных.
    1. Open SSMS
    2. Нажмите на вкладку «Просмотр»
    3. Выберите «Обозреватель объектов»
    4. Разверните папку «Базы данных»
    5. Щелкните правой кнопкой мыши базу данных, в которую вы пытаетесь выполнить массовую вставку.
    6. Выберите «Свойства»
    7. Выберите параметр списка «Файлы» в области «Выбрать страницу» слева от окна свойств.
    8. Найдите строку «Файлы базы данных» с «Файловой группой» как «ПЕРВИЧНАЯ»
    9. Добавьте любое количество мегабайт, которое вы хотите добавить в базу данных, к числу «Начальный размер (МБ)»
    10. Нажмите «ОК»
      ( Вы также можете рассмотреть свои значения «Autogrowth», пока вы здесь. )

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

Эрик Дж. Прайс
источник
1
Разве мы все не хотим больших коктейлей? : P
Санта
12

Express Edition 2014 имеет ограничение в 10 ГБ на базу данных. Если автоматический рост базы данных достигает этой точки, SQL Server выдает (неясное?) Сообщение об ошибке, не упоминая ограничение лицензии. Возможно, на диске достаточно места, но вы все равно видите это сообщение.

Исправить, если дизайн позволяет: использовать несколько баз данных по этой лицензии.

RickC
источник
1

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

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

Однако лучше задать этот вопрос администраторам баз данных, которые могут предложить больше решений.

Гордон Линофф
источник
Это не проблема неудачного роста журнала. Рост данных не удался.
USR
@usr. , , Они, вероятно, занимают одно и то же место на диске. Проблема заключается в недостатке места на диске.
Гордон Линофф
Он говорит, что дисковое пространство доступно. Я прямо спросил, потому что я тоже был подозрительным.
USR
Сколько дискового пространства доступно / свободно? Каков текущий размер всех файлов в основной группе файлов и каковы их параметры роста? Возможно, прирост роста больше, чем доступное свободное пространство.
user9164
1

По моему опыту, это сообщение возникает, когда в основном файле (.mdf) нет места для сохранения метаданных базы данных. Этот файл включает системные таблицы, и они только сохраняют свои данные в него.

Сделайте немного места в файле, и команды снова будут работать. Вот и все, наслаждайтесь

FcoJavier99
источник