Налаштування:
- Windows Server 2008 R2
- SQL Server 2008 R2 SP1
- 240 Гб оперативної пам’яті
- TempDB - це файли даних 8х16 ГБ без автоматичного зростання (всього 128 ГБ)
- Фізичний / автономний сервер
Цей сервер використовується для обробки ETL. Ми щойно встановили на цьому сервері більше оперативної пам’яті на загальну 240 Гб оперативної пам’яті. Служби SQL Server - це єдині реальні речі.
Пам'ять добре відображається в BIOS, OpenManage та Windows.
Якщо я налаштую SQL Server на використання мінімальної / максимальної пам’яті 70/100 Гб, у нас немає проблем. Однак, коли я збільшую його до 120/150 ГБ, я отримую таку помилку, коли запускаю один з наших ETL-процесів:
Не вдалося виділити простір для об'єкта '<тимчасовий системний об'єкт: 422234507706368>' у базі даних 'tempdb', оскільки група файлів 'PRIMARY' заповнена. Створіть простір на диску, видаливши непотрібні файли, видаливши об’єкти у групі файлів, додавши додаткові файли до групи файлів або встановивши автоматичний ріст для існуючих файлів у групі файлів. (Msg 1105, стан 2, процедура невідома, рядок 1)
Ми ніколи не стикалися з цим питанням до зміни конфігурації пам'яті. Після повторної конфігурації до оригінального 70/100 Гб ми не отримаємо цю помилку.
Те, що я спробував:
- Встановіть файли даних TempDB для автоматичного зростання. Це просто призводить до того, що файли автоматично зростають, поки не буде досягнуто ємності диска, а потім не вийде з ладу.
- Додайте більше файлів даних TempDB. Та сама помилка, як показано.
- Збільшити розмір TempDB до 8x32GB (всього 256GB)
Я в збитку щодо того, що може бути причиною цієї проблеми.