2009-06-23 72 views

回答

0

我已通過重新設計我的查詢使用'多語句函數'來解決此問題 這種類型的TVF顯然會在磁盤上創建臨時表,因此不會因內存不足而受到影響。

感謝

0

如果這是一個龐大的查詢,並且/或者有很多用戶使用系統,每個用戶都運行大量查詢,這是不可避免的。

不幸的是,即使工作負載與以前相同,SQL Server中也存在一個已知的問題,即發生此錯誤。停止/重新啓動服務器雖然完全荒謬,但通常可以解決問題。

您可以考慮的另一件事是運行dbcc free*cache語句清除緩存佔用的內存。

0

Reference taken from this blog !

有不同的替代方案來解決這個問題。

首先,檢查您的SQL Server設置「最小服務器內存」和「最大服務器內存」。如果您發現這兩個值的差異很小,請增加「最大服務器內存」。

二,找到長時間運行的查詢及其內存使用情況信息,如果此查詢處於空閒狀態,請驗證並終止此進程。數據庫性能優化對於內存使用來說是一件重要的事情。

第三,找到長時間運行查詢的索引用法,因爲沒有正確索引您的系統磁盤I/O增加並直接影響到您的內存。

四,檢查虛擬內存頁面文件的大小並增加此文件的大小。

五,檢查「每個查詢最小內存」的大小,實際上它默認爲1024 KB,但在極少數情況下可以減小此參數的大小。其實,這不是可取的,但你可以嘗試。

六,嘗試執行此DBCC命令,並且這不是可取的,因爲它可能會影響到服務器的整體性能。但你可以試試這個。

相關問題