Sql-Server

增加最大伺服器記憶體以處理 SQL Server 上的 System.OutOfMemoryException

  • March 7, 2017

我不是很有經驗,所以請多多包涵。

我一直在嘗試將 2500 MB 和 3800 MB CSV 導入 SQL Server 2016。不幸的是,我不斷收到 System.OutOfMemoryException 錯誤。我的電腦有 8.00 GB RAM,所以我想我只需將最大伺服器記憶體從預設值增加到 4000 MB。出於某種原因,儘管每次我嘗試更改最大伺服器記憶體以使其更高時,它都會在我按下 OK 的那一刻變回預設值。我該如何解決這個問題?

我正在使用BULK INSERT導入數據。、BATCHSIZE和參數未設置KILOBYTES_PER_BATCHROW_PER_BATCH

更新

我決定拆分我的 CSV 文件,以便一次可以導入更少的文件。不幸的是,當我嘗試導入最後一塊 CSV 時,錯誤再次出現。

更新

我設法將最大伺服器記憶體大幅增加到 4 GB。然而,這並沒有解決問題。

您看到的System.OutOfMemoryException錯誤意味著 SQL Server Management Studio 存在問題,而不是伺服器本身的記憶體量問題。觸發此錯誤的一種簡單方法是簡單地SELECT在大表上執行查詢。如果表格太大,那麼結果網格將佔用太多記憶體,您會看到錯誤。

我不清楚為什麼在導入數據時會遇到此錯誤,但提高最大伺服器記憶體不是正確的解決方法。BULK INSERT我建議在設置BATCHSIZEKILOBYTES_PER_BATCHROW_PER_BATCH參數後嘗試。這將限制在單個事務中發送的數據量。您也可以嘗試通過bcp導入數據。您甚至不需要為此打開 SSMS。

引用自:https://dba.stackexchange.com/questions/166407