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

时间:2018-12-11 15:09:52

标签: sql-server sql-server-2012

我的SQL Server Standard版本11.0.6020.0遇到问题。我大约一个半月前注意到了这个问题。发生的事情是,在服务器上运行我的例行维护时,该作业将永远运行。这是将执行数天的命令的示例:

new WP_Query( $args );

现在,此语句通常立即完成:

  

StartTime = 2018-12-05 02:00:01.057

     

EndTime = 2018-12-05 02:00:01.673

但是出于某种原因,它突然出现了问题。我用谷歌搜索了这个问题,直到死了,我发现的唯一线索是某处的文章说tempdb可能已损坏。因此,我停止了服务。删除我的tempdb,然后重新启动服务器。测试了alter index语句和BAM!在几秒钟内完成。以为我解决了问题;我从事我的生意。该修复过程大约持续了4周,然后重新开始。重复我做过的事情,然后才想到我可以再休息几周,不行。这次修复只持续了几天。

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

  

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

1 个答案:

答案 0 :(得分:0)

我终于想出了解决问题的方法,但是对于导致问题的最初原因我一无所知。在维护步骤之前,我运行以下DBCC命令:

DBCC FREEPROCCACHE

DBCC FREESYSTEMCACHE ('tempdb')

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