0

我在具有16 GB RAM的新服務器中使用SQL Server 2012。 我有一個長期運行的存儲過程在一個50 GB的數據庫和大約250萬記錄在輸入表。該過程讀取一個表(輸入表)並對行進行規範化(大多數列具有文本值而不是ID),將規範化行插入到另一個表中。 什麼問題? SQL Server服務的內存消耗盡可能增加。我必須設置一個上限以避免凍結服務器。 這是正常的嗎?我知道SQL Server維護內存中的數據,而不是釋放內存,以避免將來再次加載內存,但在我的情況下,我將來不需要它,因爲這只是一個讀取數據,對其進行規範化的過程,將它移動到另一個表格。SQL Server 2012中長時間運行的存儲過程中的內存消耗

+0

刪除「謝謝」。請參閱「是否應將'嗨','謝謝',標語和敬意從帖子中刪除?」 http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be-removed-from-posts – 2014-10-08 01:07:22

+0

我剛剛刪除它。感謝您的建議。 – 2014-10-08 15:02:27

回答

2

你所描述的是絕對正常的。 SQL Server在內存中緩存儘可能多的數據,因爲它可以加快執行時間。一次訪問RAM比訪問硬盤要快得多。沒有限制,即使操作系統必須將所有內容分頁到磁盤,它也會將所有內容填充到內存中。這會使您的服務器變慢。

當SQL Server達到其內存限制時,它將決定要保留什麼以及要清除哪些內容以爲新數據騰出空間。不要試圖微觀管理它。

相關問題