全文:创建多个全文索引(服务器挂起)后,许多FT_MASTER_MERGE以SUSPENDED状态等待


9

我们在SQL Server 2014上进行了测试,当时我们有10个数据库,每个数据库中有100个不同的架构,每个架构中有10个小表(〜50行)(总共有10K个表),并在所有这些表上创建了全文本索引所有这些数据库中的表。

几分钟后,我们发现SQL Server停止接受任何连接(ADMIN:.连接除外)。如果重新启动服务器,则可以连接,但有时会再次挂起。经过一些调查,我们发现它是由消耗所有工作线程引起的dm_os_tasksdm_os_waiting_tasks并向我们​​显示了状态中有很多FT_MASTER_MERGE等待SUSPENDED。我们用谷歌搜索“全文正在等待主合并操作”,但没有找到更多有关它的实际信息。

我们尝试了不同的全文目录配置:每个DB一个目录,每个模式一个目录,每个索引一个目录。无论如何,服务器将所有这些挂起的任务挂起。

什么是等待的根本原因,如何解决/减轻这种等待?

在如此大量的表上启用全文的推荐方法是什么?

Answers:


3

您将需要错开操作而不是一次执行所有操作。连接项不涉及接受新连接。但是由于这种等待线程(在您的情况下)不会被释放,因此无法使用新的connectoins。

参考:

这是SQL Server的已知问题。从连接项:

这是由于我们当前的作业调度程序的设置方式导致多个主合并操作排队,但从未发出信号。需要明确的是,只有在同时调用多个索引/重组操作时才会发生这种情况-索引操作可以很好地完成并且结果是可查询的。只有主合并会超时,并在以后的一段时间内重新安排。

由于修复程序的复杂性,我们决定等到下一个主要版本再对其进行分类。目前,建议不要将 索引总数错开,以免引起此类超时问题。如果您还有其他问题,请告诉我。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.