合 MSSQL的创建索引占用的内存
Tags: MSSQLSQL Server整理自官网索引内存
简介
在创建索引时,index create memory 选项控制最初为排序操作分配的最大内存量。 此选项的默认值为 0(自动配置)。 如果随后创建索引时需要更多内存,而且有内存可供使用,服务器将使用可用的内存,从而超出此选项的设置。 如果没有内存可供使用,则继续使用已分配的内存来创建索引。
创建索引占用的内存(KB,0 = 动态内存)
指定在索引创建排序过程中要使用的内存量 (KB)。 默认值为零,表示启用动态分配,在大多数情况下,无需进一步调整即可正常工作;不过,用户可以输入 704 到 2147483647 之间的其他值。
开始之前
限制和局限
- min memory per query 选项的设置优先于 index create memory 选项的设置 。 如果更改这些选项,使 index create memory 小于 min memory per query,则会收到警告消息,但设置的值仍会生效。 而且,在查询执行过程中,您还会收到类似的警告。
- 使用已分区表和已分区索引时,如果出现非对齐的已分区索引且并行度很高,则创建索引时的最低内存要求将显著提高。 此选项控制在单一索引创建操作中为所有索引分区分配的初始内存总量。 如果此选项设置的内存量小于运行查询所需的最小内存,查询将终止并显示错误消息。
- 此选项的运行值不会超过用于运行 SQL Server 的操作系统和硬件平台的实际内存量。
建议
- 此选项是一个高级选项,仅应由有经验的数据库管理员或认证的 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
配置 index create memory 选项
在对象资源管理器中,右键单击服务器并选择 “属性” 。
单击 “内存” 节点。
在 “创建索引占用的内存” 下,为 index create memory 选项键入或选择所需的值。
本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!