我对 SQL 一无所知,我打算把它放在那里。我们的开发人员说这是一个操作系统问题。你能帮我找出从哪里开始确定这是否是操作系统问题吗?SQL 显然没有锁定页面文件中的内存,所以我们没有看到 SQLserver.exe 利用率很高。
SQL Server 2008 R2 Microsoft Server 2008 R2 CPU - Intel Xeon x6550 - 2.93GHz(2 个处理器)内存 - 20GB
CPU 使用率 - 平均 89% 内存使用率 - 平均 10%
答案1
从您发布的所有信息来看,我 99% 确信这只是他们正在运行的 T-SQL 查询。我敢打赌,这是代码生成的查询,并且某些东西正在发出带有一千个 JOIN 或类似内容的查询。
让开发人员分析他们的查询;我敢打赌,一个或另一个功能会花费大量的时间,而这正是 CPU 峰值的根本原因。
答案2
您没有提到 SQL Server 的版本,但我猜这里是标准版。您是否启用了跟踪标志 845 以使用内存中的锁定页。此 TF 在 SQL Server 2008 R2 中仍然需要,请参阅下面 Aaron Bertrand 的说明。
还要检查盒子上还运行着什么?
答案3
如果 CPU 利用率是由 sqlservr.exe 进程(而不是其他进程或内核)引起的,您可能需要使用以下命令进行检查进程探索器)并且您没有看到磁盘负载,则可能是不是这是一个操作系统问题,而只是查询导致的计算负载。
所讨论的数据库有多大?
答案4
兄弟,如果你的 CPU 利用率达到 100%,那么你很可能缺少索引。了解如何运行数据库调优顾问以构建最佳索引。
希望有帮助
-Aaron Kempf MCITP:DBA