Настроить:
- Windows Server 2008 R2
- SQL Server 2008 R2 с пакетом обновления 1
- 240 ГБ ОЗУ
- TempDB - это файлы данных 8x16 ГБ без автоматического увеличения (всего 128 ГБ)
- Физический / Автономный Сервер
Этот сервер используется для обработки ETL. Мы только что установили больше оперативной памяти на этом сервере в общей сложности 240 ГБ ОЗУ. Службы SQL Server - единственные действующие вещи.
Память хорошо отображается в BIOS, OpenManage и Windows.
Если я настрою SQL Server на использование минимального / максимального объема памяти 70/100 ГБ, у нас не возникнет проблем. Однако, когда я увеличиваю это значение до 120/150 ГБ, я получаю следующую ошибку при запуске одного из наших процессов ETL:
Не удалось выделить место для объекта «<временный системный объект: 422234507706368>» в базе данных «tempdb», поскольку файловая группа «PRIMARY» заполнена. Создайте дисковое пространство, удаляя ненужные файлы, удаляя объекты в файловой группе, добавляя дополнительные файлы в файловую группу или устанавливая автоматический рост для существующих файлов в файловой группе. (Сообщение 1105, состояние 2, процедура неизвестна, строка 1)
Мы никогда не сталкивались с этой проблемой до изменения конфигурации памяти. После перенастройки обратно на исходные 70 / 100ГБ мы не получаем эту ошибку.
Вещи, которые я пробовал:
- Установите файлы данных TempDB для автоматического увеличения. Это просто приводит к автоматическому росту файлов до тех пор, пока не будет достигнута емкость диска, а затем происходит сбой.
- Добавьте больше файлов данных TempDB. Та же ошибка, что и на рисунке.
- Увеличьте размер TempDB до 8x32 ГБ (всего 256 ГБ)
Я в недоумении относительно того, что может быть причиной этой проблемы.