為了增加針對SQL Server在寫入以及讀取上的效能,將特定資料表採用InMemory的技術,
能大幅增加資料查詢的時間,使用起來異常痛快,但哪知還是採到地雷啊!
特此筆記之。
測試過程中持續寫入至InMemory資料表中,直到記憶體都被塞滿了吐出這樣的錯誤訊息。
資源集區 'default' 中的系統記憶體不足,無法執行此查詢。
這一切看起來都很合理,但是當我再做以下的查詢時...
或是重新啟動SQL Server服務...
我的老天爺啊,整個資料庫都往生啦~
整個動彈不得,後果不堪設想(基本上就是整個系統都GG了)。
目前已知的處理方法如下:
1. 設定資料庫使用記憶體上限。當發生此狀況時,停止資料寫入Memory並增加記憶體上限,使資料庫可以正常運作。
2. 軟的不喜歡那就來硬的吧!拆開機殼,翻出DRAM,插入主機板...
呃...小弟我才疏學淺,目前只知道如此的解法。
結論:
使用InMemory技術時要特別小心,需注意機器的記憶體狀態,個人覺得最保險的就是去設定一下SQL Server可用的記憶體上限,至少狀況發生時還可以透過滑鼠便可應急。
關於Sql Server InMemory技術可以參考msdn:
https://msdn.microsoft.com/zh-tw/library/dn133186.aspx
沒有留言:
張貼留言