“重新生成索引”任务(维护计划)
适用范围:SQL Server
使用“重新生成索引任务”对话框可用利用新的填充因子对数据库中的表重新创建索引。 填充因子确定索引中每页上的空白空间量,以容纳将来的扩展内容。 随着向表中添加数据,由于没有维持填充因子,可用空间将逐渐填满。 重新组织数据页和索引页可以重新建立可用空间。
“‘重新生成索引’任务” 使用 ALTER INDEX 语句。 有关此页所述选项的详细信息,请参阅 ALTER INDEX (Transact-SQL)。
选项
Connection
选择执行此任务时使用的服务器连接。
新建
创建一个新的服务器连接,在执行此任务时使用。 下面对 “新建连接” 对话框进行了介绍。
数据库
指定受此任务影响的数据库。
“所有数据库”
生成的维护计划将对除
tempdb
外的所有 SQL Server 数据库运行维护任务。所有系统数据库
生成的维护计划将对除
tempdb
之外的每个 SQL Server 系统数据库运行维护任务。 对用户创建的数据库不运行维护任务。所有用户数据库
生成的维护计划将对用户创建的所有数据库运行维护任务。 但不会对 SQL Server 系统数据库运行任何维护任务。
特定数据库
生成的维护计划将只对所选数据库运行维护任务。 如果选择此选项,则必须至少在列表中选择一个数据库。
注意
只能对兼容级别被设置为 80 或更高的数据库运行维护计划。 不显示兼容级别设置为 70 或更低的数据库。
Object
将“选择”网格限制为显示表、显示视图或同时显示两者。
选择
指定受此任务影响的表或索引。 在“对象”框中选择 “表和视图” 时不可用。
每页的默认可用空间
删除数据库中表上的索引,并使用在创建索引时指定的填充因子重新创建索引。
将每页可用空间更改为
删除数据库中表上的索引,并使用新的、自动计算的填充因子重新创建索引,从而在索引页上保留指定的可用空间。 百分比越高,索引页上保留的可用空间就越多,并且索引增长也就越大。 有效值为 0 到 100。
对 tempdb 中的结果进行排序
使用
SORT_IN_TEMPDB
选项,该选项可确定在索引创建过程中生成的中间排序结果的临时存储位置。 如果不需要执行排序操作,或者可以在内存中执行排序,则忽略SORT_IN_TEMPDB
选项。填充索引 (Pad index)
指定索引填充
保持索引联机
使用
ONLINE
选项,用户可以在索引操作期间访问基础表或聚集索引数据以及任何关联的非聚集索引。注意
在 Microsoft SQL Server 的各版本中均不提供联机索引操作。 有关 SQL Server 各个版次支持的功能列表,请参阅 SQL Server 2022 的各个版次及其支持的功能。
不要重新生成索引 | 重新脱机生成索引
指定要对无法重新联机生成的索引类型执行的操作。
MAXDOP
指定一个值,以限制在并行计划执行过程中使用的处理器数量。
使用低优先级
选择此选项,以等待低优先级锁。
等待后中止
指定要在 最大持续时间 过后执行的操作。
最大持续时间
指定低优先级锁的等待时间。
查看 T-SQL
根据所选选项,查看针对此任务的服务器执行的 Transact-SQL 语句。
注意
当受影响的对象很多时,可能需要相当长的时间才可显示。
索引统计信息选项
在旧版 Microsoft SQL Server 中,可能会导致系统重新调整或重新生成大型索引,进而导致速度变慢。 SQL Server 2016 (13.x) 大幅提升了这些索引操作的性能。
此外,在旧版中,控制级别不太细致。 这导致系统重新调整或重新生成一些索引,即使这些索引的碎片百分比不高,也不例外。但这会造成资源浪费。 通过维护计划用户界面 (UI) 上的新版控件,可以根据索引统计信息条件来排除不需要刷新的索引。 为此,可以在内部使用下列 Transact-SQL 动态管理视图 (DMV):
扫描类型
系统必须使用资源才能收集索引统计信息。 可以选择使用相对较少还是较多的资源,具体取决于所需的索引统计信息精度。 UI 提供了以下精度级别列表,必须从中选择一个:
- 快速
- 抽样
- 详细
仅在以下情况下优化索引
UI 提供了以下可调筛选器,可用于避免刷新不是非常需要刷新的索引:
- 碎片 > (%)
- 页计数 >
- 用于过去(天)
“新建连接”对话框
连接名称
输入新连接的名称。
选择或输入服务器名称
选择执行此任务时所要连接的服务器。
“刷新”
刷新可用服务器的列表。
输入登录服务器所需的信息
指定如何对服务器进行身份验证。
使用 Windows 集成安全性
使用 Microsoft Windows 身份验证连接到 SQL Server 数据库引擎实例。
使用特定用户名和密码
使用 SQL Server 身份验证连接到 SQL Server 数据库引擎实例。 此选项不可用。
用户名
提供一个在进行身份验证时要使用的 SQL Server 登录名。 此选项不可用。
密码
提供一个在进行身份验证时要使用的密码。 此选项不可用。