Sql server 如何查询索引重建的进度或估计

Sql server 如何查询索引重建的进度或估计,sql-server,indexing,sql-server-2016,Sql Server,Indexing,Sql Server 2016,我使用非唯一和非聚集索引获取SQL Server 2016(SP2-CU2)和分区表(2 TB空间,如100亿条记录,每个分区每月平均2.5亿条记录),并使用典型命令运行enable(rebuild): ALTER INDEX [IX_name_Partition] ON [dbo].[TBL_name_Partition] REBUILD PARTITION = ALL WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_T

我使用非唯一和非聚集索引获取SQL Server 2016(SP2-CU2)和分区表(2 TB空间,如100亿条记录,每个分区每月平均2.5亿条记录),并使用典型命令运行enable(rebuild):

ALTER INDEX [IX_name_Partition] ON [dbo].[TBL_name_Partition] REBUILD PARTITION = ALL
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, 
ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) 
GO
它可以运行12个小时,谁知道它能运行多久。 你知道如何对其运作进行评估/进度吗

最流行的与it主题相关的线程(我尝试过的脚本,但不幸的是它根本没有帮助):


UPDP.S.19小时后,此重建成功完成。

无法估计重建进度,但如果您的分区是按日期或其他不断增加的列进行的,则可能不需要重建所有分区,只需重建最后一个分区。在任何情况下,为什么不一次重建一个分区来估计需要多长时间,将这段时间延长到重新生成分区?表有多大?我是说Gb,不是记录的数量。12小时似乎有些夸张,但如果您的表大约是400Gb,而您的服务器只有4Gb的RAM,那么它就是possible@sepupic,谢谢您的提问,更新了表的大小和实际行数。关于索引,它被禁用了,不幸的是,我不能为禁用的索引重建一个分区。我不知道你的索引有多大(我希望它比你的表小得多),但2Tb确实很大,我认为你应该检查数据文件和日志的自动增长大小。我认为你的服务器现在花了很多时间来扩展数据库,尤其是日志。也许我应该解释一下……重建索引意味着创建一个新的索引,然后删除旧的索引。新索引的大小将不小于禁用索引的大小。因此,您的数据库需要有:用于容纳新索引的数据空间,用于进行排序的数据空间,因为您使用了sort_IN_TEMPDB=OFF,并且它需要足够大的日志来容纳这个庞大的事务