Impostare:
- Windows Server 2008 R2
- SQL Server 2008 R2 SP1
- 240 GB di RAM
- TempDB è un file di dati 8x16 GB senza crescita automatica (128 GB in totale)
- Server fisico / autonomo
Questo server viene utilizzato per l'elaborazione ETL. Abbiamo appena installato più RAM in questo server per un totale di 240 GB di RAM. I servizi di SQL Server sono le uniche cose reali in esecuzione.
La memoria si presenta bene nel BIOS, OpenManage e Windows.
Se configuro SQL Server per utilizzare una memoria Min / Max di 70 / 100GB, non abbiamo problemi. Tuttavia, una volta aumentato a 120/150 GB, quando eseguo uno dei nostri processi ETL viene visualizzato il seguente errore:
Impossibile allocare spazio per l'oggetto "<oggetto di sistema temporaneo: 422234507706368>" nel database "tempdb" perché il filegroup "PRIMARY" è pieno. Crea spazio su disco eliminando i file non necessari, rilasciando oggetti nel filegroup, aggiungendo altri file al filegroup o impostando la crescita automatica per i file esistenti nel filegroup. (Messaggio 1105, stato 2, procedura sconosciuta, riga 1)
Non abbiamo mai riscontrato questo problema prima di modificare la configurazione della memoria. Dopo la riconfigurazione ai 70 / 100GB originali, non viene visualizzato questo errore.
Cose che ho provato:
- Impostare i file di dati TempDB su crescita automatica. Ciò comporta semplicemente la crescita automatica dei file fino al raggiungimento della capacità del disco e quindi non riesce.
- Aggiungi altri file di dati TempDB. Stesso errore mostrato.
- Aumenta la dimensione TempDB a 8x32 GB (256 GB in totale)
Sono in perdita su ciò che potrebbe causare questo problema.