鉴于:
- 生产环境
- 使用 Hibernate 的应用服务器
- SQL Server Studio 管理器 v17.5
- 群集 HAG 设置中的 SQL Server 2016
- SQL Server 未启用查询存储功能
- 这个问题的作者是一位软件工程师,拥有足够的 SQL Server 知识,可以归类为几乎无害
更新 1
- 数据库增长设置:无限制,1024000 KB,仅数据
- instant_file_initialization_enabled - 是
- is_auto_update_stats_async_on - 否
更新 2
- 服务器有 4 个 CPU 核心
- 等待任务的峰值超过 3,000,000。我还不知道它们是什么。这一定是大“锁定”时间的原因。
- 这些尖峰每 10 或 15 秒出现一次。我有以下图表每秒更新一次:
问题:
根本问题是,在忙碌的一天中看似随机的时间,几个 SQL 查询超时,但是,出于这个问题的目的,我对屏幕抓取是否表明本身存在问题感兴趣。也许这是主观的,但我对这个值没有经验。
行动:
失败本身并没有直接指向具体问题,因此我目前正在收集证据并尽可能尝试消除过程。目前我正在调查是否过长的等待时间和查询的“完美风暴”会导致级联锁,从而导致查询超时。
收集到的证据:
- 几个查询会导致全索引扫描或全表扫描。
- 几个带有执行计划的屏幕截图,显示了表扫描。粗略检查表明索引确实存在 - 但尚未使用。如果它们被证明有用,我也许可以对屏幕抓取进行消毒。
- 下面的屏幕截图显示了较长的等待时间。
问题:
还有哪些其他信息可以帮助确定锁定和等待时间是否可能是查询超时的原因?例如,我从 sql server studio manager 活动监视器获取了以下屏幕截图。这个价值让我感到惊讶。
1 个回答