解决方法
与RAM大小无关,您仍然需要一个页面文件,至少是物理RAM的1.5倍。这是真的,即使你有一个1 TB RAM机器,你将需要1.5 TB页面文件在磁盘上(听起来很疯狂,但是是真的)。
当进程通过VirtualAlloc / VirtualAllocEx询问MEM_COMMIT内存时,需要在页面文件中保留所请求的大小。这在第一个Win NT系统中是正确的,今天仍然是真实的Managing Virtual Memory in Win32:
When memory is committed,physical
pages of memory are allocated and
space is reserved in a pagefile.
不过有些极端奇怪的情况,sql Server会一直要求MEM_COMMIT页面。鉴于sql使用Dynamic Memory Management策略,尽可能保留尽可能多的缓冲池(在VAS方面保留并提交),sql Server将在页面文件中启动空间的大量预留。如果页面文件的大小不正确,则会在sql的ERRORLOG文件和操作中开始显示801/802。
这总是导致一些混乱,因为管理员错误地假设大的RAM不需要页面文件。事实上,相反的是,一个大的RAM增加了对pagefile的需求,只是因为Windows NT内存管理器的内部工作。希望从未使用预留的页面文件。