服务器配置:索引创建内存

适用范围:SQL Server

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

限制

每个查询选项的最小内存设置优先于该index create memory选项。 如果同时更改选项和 index create memory 选项小于 min memory per query,则会收到警告消息,但设置该值。 而且,在查询执行过程中,您还会收到类似的警告。

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

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

建议

此选项是一个高级选项,仅应由有经验的数据库管理员或认证的 SQL Server 专业人员更改。

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

在生产系统上创建索引通常是不常执行的任务,通常安排在非高峰时段执行。 因此,在创建索引时不频繁且在非高峰期,增加 index create memory 可提高索引创建性能。 但是,将每个查询配置选项的最小内存保留为较低的数字,因此即使所有请求的内存都不可用,索引创建作业仍会启动。

权限

默认情况下,所有用户都具备不带参数或仅带第一个参数的 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
    

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

跟进:配置索引创建内存选项后

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