诊断Azure SQL上FT_IFTSHC_MUTEX的高等待时间

时间:2018-04-20 10:38:04

标签: sql-server locking azure-sql-database

最近,我们遇到了FT_IFTSHC_MUTEX等待数量大幅增加的问题。对于某些用户请求,我们已经看到等待时间接近250秒。 我们使用SQL Azure的全文搜索功能来实现云服务中的搜索功能。

我们观察到的是,当FT_IFTSHC_MUTEX等待计数达到峰值时,数据库性能会下降。我们开始看到查询执行时间大大增加,并且越来越多的查询在队列中建立。

根据文档,我在这个等待类型上唯一能找到的是:

  

FT_IFTSHC_MUTEX:全文正在等待fdhost控件操作。   记录仅供参考。不支持。未来   兼容性无法保证。

在所有其他博客或文档中,我读到的是这种等待类型是良性的,可以忽略。 我想确认是否:

  • 这真的可以忽略吗?
  • 高等待计数的原因是什么,我该如何调试呢?在等待计数较高的期间,SQL Server处理器稳定(没有峰值),请求计数也会转到数据库。

任何进一步调试的指针?

1 个答案:

答案 0 :(得分:0)

您是否可以在更新由全文搜索索引的列时验证资源消耗是否未达到限制,因此会发生限制,从而在该等待时间内产生峰值?

SELECT 
    (COUNT(end_time) - SUM(CASE WHEN avg_cpu_percent > 80 THEN 1 ELSE 0 END) * 1.0) / COUNT(end_time) AS 'CPU Fit Percent'
    ,(COUNT(end_time) - SUM(CASE WHEN avg_log_write_percent > 80 THEN 1 ELSE 0 END) * 1.0) / COUNT(end_time) AS 'Log Write Fit Percent'
    ,(COUNT(end_time) - SUM(CASE WHEN avg_data_io_percent > 80 THEN 1 ELSE 0 END) * 1.0) / COUNT(end_time) AS 'Physical Data Read Fit Percent'
FROM sys.dm_db_resource_stats

- 服务水平目标(SLO)为99.9%< =进入下一层

如果此数据库的工作负载是I / O密集型的,则高级层适用于这些工作负载。