我不知道SQL我会把它放在那里。 我们的开发人员已经表示这是一个操作系统问题。 你能帮我找出从哪里开始确定这是否是一个操作系统问题? SQL不显式locking页面文件中的内存,所以我们看不到很高的SQLserver.exe利用率。
SQL Server 2008 R2 Microsoft Server 2008 R2 CPU – Intel Xeon x6550 – 2.93GHz(2个处理器)内存 – 20GB
CPU使用率 – 平均值89%内存使用率 – 平均值10%
从你发布的所有信息,我99%确定这只是他们正在运行的T-SQL查询。 我敢打赌,这是代码生成的查询,并发出一个查询千位JOIN或类似的东西。
让开发者分析他们的疑问; 我敢打赌,一个或另一个function需要花费大量的时间,这是CPU高峰的根本原因。
你还没有提到SQL Server的版本,但我在这里猜测它的标准。 你是否启用了跟踪标志845来使用内存中的locking页面。 这个TF在SQL Server 2008 R2中仍然是必需的,请参阅Aaron Bertrand的注释。
还要检查盒子上还有什么东西在运行?
如果CPU利用率是由sqlservr.exe进程引起的(而不是其他进程或内核 – 您可能需要使用Process Explorer进行检查),并且没有看到磁盘加载,则可能不是操作系统问题,而只是计算负载造成的查询。
有问题的数据库有多大?
老兄,如果你有100%的CPU利用率,那么你很可能缺less指标。 了解如何运行数据库调优顾问以构build最佳索引。
希望有所帮助
–Aaron Kempf MCITP:DBA