SQL Server-索引碎片整理将永远运行



我的SQL Server Standard 11.0.6020.0版本出现问题。我第一次注意到这个问题大约是在一个半月前。实际情况是,当我在服务器上运行日常维护时,作业将永远运行。以下是将执行数天的命令示例:

ALTER INDEX [IX_NonClustedIndex] ON [Database].[dbo].[Table] REBUILD WITH 
(SORT_IN_TEMPDB = ON, ONLINE = OFF)  

现在,这句话通常很快就完成了:

开始时间=2018-12-05 02:00:01.057

结束时间=2018-12-05 02:00:01.673

但出于某种原因,它突然出现了问题。我在谷歌上搜索了这个问题,发现的唯一线索是某个地方的一篇文章,说tempdb可能已经损坏。所以,我停止了服务。删除了我的tempdb,然后重新启动了服务器。测试了alter index语句和BAM!几秒钟内完成。以为我已经解决了问题;我去做我的事。修复程序持续了大约4周后才重新开始。重复了我之前所做的,我认为我会再过几周,但没有。这次修复只持续了几天。

知道是什么导致了我的问题,或者我需要调查什么吗?提前谢谢。

**服务器设置**这是在Windows Server 2012 R2 Standard上。2个CPU,每个CPU有8个核心。192 GB内存。tempDB有20个数据文件,每个文件的大小为5GB。

我终于想好了如何解决这个问题,但我不知道是什么导致了这个问题。在进行维护步骤之前,我运行以下DBCC命令:

DBCC FREEPROCCACHE
DBCC FREESYSTEMCACHE ('tempdb')

我的想法是缓存的执行计划导致索引碎片整理溢出。

最新更新