There is insufficient system memory to run this query 錯誤
服務器環境大致情況如下:
操作系統: Microsoft Windows Server 2003 R2 Enterprise Edition Service Pack 2
數據庫 : Microsoft SQL Server 2005 - 9.00.5000.00 (Intel X86) 。
機器物理內存8G,開啟了“使用AWE分配內存選項(U)"
在這臺服務器上,創建YourSQLDba後,配置過程中創建函數的時候,報如下錯誤,重試了幾次都是如此,但是其它應用從來沒有出過這個錯誤,而且這是一臺生產服務器,很多應用在跑,所以這才是讓我納悶的地方:
消息 701,級別 17,狀態 13,過程 clr_GetFolderList,第 1 行
There is insufficient system memory to run this query.
消息 701,級別 17,狀態 13,過程 clr_GetFolderListDetailed,第 1 行
There is insufficient system memory to run this query.
其實這兩個函數也沒特別之處,而且在其它64數據庫上,也沒有碰到過類似的錯誤。
CREATE FUNCTION yUtl.clr_GetFolderList (@FolderPath nvarchar(4000), @SearchPattern nvarchar(4000))
RETURNS TABLE ([FileName] nvarchar(255))
AS EXTERNAL NAME [YourSqlDba_ClrFileOp].[Clr_FileOperations.FileOpCs].[Clr_GetFolderList];
GO
CREATE FUNCTION yUtl.clr_GetFolderListDetailed (@FolderPath nvarchar(4000), @SearchPattern nvarchar(4000))
RETURNS TABLE ([FileName] nvarchar(255), [FileExtension] nvarchar(255), [Size] bigint, [ModifiedDate] datetime, [CreatedDate] datetime)
AS EXTERNAL NAME [YourSqlDba_ClrFileOp].[Clr_FileOperations.FileOpCs].[Clr_GetFolderListDetailed];
GO
網上搜索了一下,發現蠻多人也遇到個這個錯誤:http://social.msdn.microsoft.com/Forums/sqlserver/en-US/81cd3698-10b2-4a67-ad92-fa123cef2caa/there-is-insufficient-system-memory-to-run-this-query-error-when-running-checkdb,但是也沒有一個定論。
於是也按那些人討論的,檢查服務器環境:物理內存,數據庫版本,AWE是否開啟,最大服務器內存,clr enabled 配置等等
sp_configure ‘clr enabled‘
name minimum maximum config_value run_value
----------------------------------- ----------- ----------- ------------ -----------
clr enabled 0 1 1 1
但是,折騰了很長時間,也沒搞清真正的出錯原因,沒辦法,只能祭出大殺器”重啟SQL SERVER服務",然後重新創建YourSQLDba數據庫,創建相關存儲過程、函數等。暫時記錄一下這個問題,等有空閑或下次遇到時候,再想想辦法解決它。
There is insufficient system memory to run this query 錯誤