index create memory 选项

在 SQL Server 中,index create memory 选项控制最初为创建索引分配的最大内存量。如果随后创建索引时需要更多内存,而且有内存可供使用,服务器将使用可用的内存,从而超出此选项的设置。如果没有内存可供使用,则继续使用已分配的内存来创建索引。

根据对 SQL Server 2005 中分区表和索引的介绍,如果出现非对齐的分区索引且并行度很高,则创建索引时的最低内存要求将显著提高。从 SQL Server 2005 开始,此选项控制在单一索引创建操作中为所有索引分区分配的初始内存总量。如果此选项设置的内存量小于运行查询所需的最小内存,查询将终止并显示错误消息。

index create memory 选项是自配置选项,通常无需调整即可使用。但如果在创建索引时遇到困难,可以考虑提高此选项的运行值。

此选项的默认值为 0(自动配置)。

此选项的运行值不会超过用于运行 SQL Server 的操作系统和硬件平台的实际内存量。在 32 位操作系统中,运行值将小于 3 GB。

注意注意

min memory per query 选项的设置优先于 index create memory 选项的设置。在 SQL Server 2000 中,这些选项是相互独立的,而从 SQL Server 2005 开始,它们是相互关联的。如果更改这些选项,使 index create memory 小于 min memory per query,则会收到警告消息,但设置的值仍会生效。而且,在查询执行过程中,您还会收到类似的警告。

index create memory 选项是一个高级选项。如果使用 sp_configure 系统存储过程来更改该设置,则只有在 show advanced options 设置为 1 时才能更改 index create memory。更改后的设置将立即生效,而不需要重新启动服务器。

示例

index create memory 选项配置为 4096:

sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'index create memory', 4096
GO
RECONFIGURE;
GO