指定 SQL Server 为在 SQL Server 进程之内但在 SQL Server 内存池之外分配内存而保留的内存整数量 (MB)。内存池以外的内存是指 SQL Server 用于加载诸如下列项目的区域:扩展过程 .dll 文件、分布式查询引用的 OLE DB 访问接口以及 Transact-SQL 语句中引用的自动化对象。文件大小的默认值为 256 MB。
使用此选项可帮助优化内存分配,但仅限于物理内存超过操作系统设置的应用程序可用虚拟内存配置限制时。如果 SQL Server 的内存使用要求异乎寻常,并且 SQL Server 进程的虚拟地址空间都在使用,则对于这样的大内存配置适合使用此选项。对此选项的不当使用会导致 SQL Server 实例无法启动或遇到运行时错误。
除非在 SQL Server 错误日志中看到下列任何警告,否则应使用 -g 参数的默认值:
"Failed Virtual Allocate Bytes: FAIL_VIRTUAL_RESERVE "
"Failed Virtual Allocate Bytes: FAIL_VIRTUAL_COMMIT "
这些消息可能指示 SQL Server 尝试释放部分 SQL Server 内存池空间,以便为扩展存储过程 .dll 文件或自动化对象等项目留出空间。在这种情况下,可以考虑增加由 -g 开关保留的内存量。
使用小于默认值的值将增加缓冲池和线程栈中的可用内存量;而在不使用很多扩展存储过程、分布式查询或自动化对象的系统中,这种方法可改善需要大量内存的工作负荷的性能。