识别 SQL Server 中的性能瓶颈,检查常见的嫌疑人

DDu*_*lla 0 performance sql-server sql-server-2012

我试图确定用户所描述的应用程序性能缓慢。我有一种预感,它可能与应用程序本身有关,而不是 SQL 服务器的问题。我已经检查了许多常见的疑点,以确定常见的瓶颈。

  • 有什么我解释不正确的吗?
  • 有什么我忽略审查的吗?

MS SQL 服务器 (11.0.5058) 在 Hyper-V, 2012r2 上运行,并为来宾分配了以下内容:72GB 内存、16 个处理器、4 个带有 tempDB、OS、DB、程序文件的磁盘控制器,它们都在单独的 VHD 上。

在一天中运行 perfmon

% 处理器时间< 40% 最大值

平均磁盘 Q 长度0.003 平均 - 0.41 最大值

% 磁盘时间平均0.0038

平均可用字节数5010

缓冲区高速缓存命中率99.996 平均 98.614 分钟

我没有看到磁盘、内存或处理器有任何问题。我接下来应该看哪里?

Bre*_*zar 9

在这里,我将非常诚实:这些不是要查看的正确指标,无论您在何处查看,提供这些指标的地方都已经过时了。这些不是通常的嫌疑人。

在 2018 年(实际上,在过去几年中),诊断 SQL Server 缓慢的方法是使用等待统计信息。SQL Server 会不断跟踪正在等待的查询,您可以在 DMV sys.dm_os_wait_stats 中看到它。

我最喜欢的可视化方式是sp_BlitzFirst @SinceStartup = 1。(免责声明:这是我最喜欢的,因为我写了它,而且它是免费和开源的。)

尝试编辑您的答案以包含 sp_BlitzFirst 的等待统计信息的屏幕截图,我们可能会让您更接近。