Sql-Server
增加最大伺服器記憶體以處理 SQL Server 上的 System.OutOfMemoryException
我不是很有經驗,所以請多多包涵。
我一直在嘗試將 2500 MB 和 3800 MB CSV 導入 SQL Server 2016。不幸的是,我不斷收到 System.OutOfMemoryException 錯誤。我的電腦有 8.00 GB RAM,所以我想我只需將最大伺服器記憶體從預設值增加到 4000 MB。出於某種原因,儘管每次我嘗試更改最大伺服器記憶體以使其更高時,它都會在我按下 OK 的那一刻變回預設值。我該如何解決這個問題?
我正在使用
BULK INSERT
導入數據。、BATCHSIZE
和參數未設置KILOBYTES_PER_BATCH
。ROW_PER_BATCH
更新
我決定拆分我的 CSV 文件,以便一次可以導入更少的文件。不幸的是,當我嘗試導入最後一塊 CSV 時,錯誤再次出現。
更新
我設法將最大伺服器記憶體大幅增加到 4 GB。然而,這並沒有解決問題。
您看到的
System.OutOfMemoryException
錯誤意味著 SQL Server Management Studio 存在問題,而不是伺服器本身的記憶體量問題。觸發此錯誤的一種簡單方法是簡單地SELECT
在大表上執行查詢。如果表格太大,那麼結果網格將佔用太多記憶體,您會看到錯誤。我不清楚為什麼在導入數據時會遇到此錯誤,但提高最大伺服器記憶體不是正確的解決方法。
BULK INSERT
我建議在設置BATCHSIZE
、KILOBYTES_PER_BATCH
或ROW_PER_BATCH
參數後嘗試。這將限制在單個事務中發送的數據量。您也可以嘗試通過bcp導入數據。您甚至不需要為此打開 SSMS。