我有一个SQL Express 2008的实例作为服务器上的小型web应用程序的后端运行。
服务器规格: Windows 2003,64位quadcore,4gb内存
SQL数据库在磁盘上只有50mb,我从来没有见过SQL进程在任务pipe理器中使用超过200mb的ram,但是我注意到这些与SQL日志中的内存问题相关的消息。
由于内存压力,AppDomain 2(mssqlsystemresource.sys [runtime] .1)被标记为卸载。
任何想法可能会导致这一点?
Express版本对内存和CPU使用人为限制。 它不会将缓冲池扩展到1GB以上,并且不会创build多个调度程序(即只使用一个内核)。 因此,无论您拥有多less物理内存,您的系统都会遇到内存压力。 由于某些SQL数据types是在CLR中实现的(比如地理和几何),这种内存压力可能会驱逐托pipe这些系统types的appdomain(因此appdomains在mssqlsystemresource中)。
不要相信任务pipe理器! 看看perfmon计数器,看看有多less内存SQL Server真正使用。
你在使用链接服务器吗? 看看这些线程/文章:
MSDN论坛:由于内存压力,AppDomain标记为卸载
SQL Monster:由于内存压力,AppDomain被标记为卸载
PSS SQL博客:如果你使用链接服务器查询,你需要阅读这个
另外这些知识库文章: