服务器配置:index create memory

适用范围:SQL Server

本文介绍如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中配置 index create memory 服务器配置选项。 index create memory 选项控制在创建索引时最初为排序操作分配的最大内存量。 此选项的默认值为 0(自动配置)。 如果随后创建索引时需要更多内存,而且有内存可供使用,服务器将使用可用的内存。 这样做会超出此选项的设置。 如果没有更多内存可供使用,则继续使用已分配的内存来创建索引。

限制

min memory per query 选项的设置优先于 index create memory 选项。 如果更改这两个选项并且 index create memory 小于 min memory per query,则你将收到警告消息,但仍然会设置该值。 而且,在查询执行过程中,您还会收到类似的警告。

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

此选项的运行值不会超过用于运行 SQL Server 的操作系统和硬件平台的实际内存量。

建议

此选项是一个高级选项,应仅由经验丰富的数据库专业人员更改。

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

在生产系统上创建索引通常是不常执行的任务,通常安排在非高峰时段执行。 因此,不常创建索引且在非峰值时间时,增加 index create memory 可提高创建索引的性能。 但是,最好将 min memory per query 配置选项保持在一个较低的值,这样即使所有请求的内存都不可用,索引创建作业仍能开始。

权限

默认情况下,所有用户都具备不带参数或仅带第一个参数的 sp_configure 的执行权限。 若要使用两个参数执行 sp_configure 来更改配置选项或运行 RECONFIGURE 语句,用户必须拥有 ALTER SETTINGS 服务器级别权限。 ALTER SETTINGS 权限由 sysadmin 和 serveradmin 固定服务器角色隐式拥有。

使用 SQL Server Management Studio

  1. 在对象资源管理器中,右键单击服务器并选择 “属性”

  2. 选择“内存”节点

  3. “创建索引占用的内存” 下,为 index create memory 选项键入或选择所需的值。

    index create memory 选项用于控制索引创建排序时所需的内存量。 index create memory 选项是自配置选项,在大多数情况下不需调整即可正常工作。 但如果在创建索引时遇到困难,可以考虑提高此选项的运行值。 查询排序通过 min memory per query 选项控制。

使用 Transact-SQL

  1. 连接到 数据库引擎。

  2. 在标准栏上,选择“新建查询”。

  3. 将以下示例复制并粘贴到查询窗口中,然后选择“执行”。 此示例说明如何使用 sp_configureindex create memory 选项的值设置为 4096

    USE master;
    GO
    
    EXECUTE sp_configure 'show advanced options', 1;
    GO
    
    RECONFIGURE;
    GO
    
    EXECUTE sp_configure 'index create memory', 4096;
    GO
    
    RECONFIGURE;
    GO
    
    EXECUTE sp_configure 'show advanced options', 0;
    GO
    
    RECONFIGURE;
    GO
    

有关详细信息,请参阅服务器配置选项

跟进:在配置 index create memory 选项之后

该设置将立即生效,无需重新启动服务器。