SQL Server挂钩的CPU,但只使用2GB的RAM?

我不知道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的注释。

http://sqlblog.com/blogs/aaron_bertrand/archive/2011/02/07/sql-server-2008-r2-still-requires-a-trace-flag-for-lock-pages-in-memory.aspx

还要检查盒子上还有什么东西在运行?

如果CPU利用率是由sqlservr.exe进程引起的(而不是其他进程或内核 – 您可能需要使用Process Explorer进行检查),并且没有看到磁盘加载,则可能不是操作系统问题,而只是计算负载造成的查询。

有问题的数据库有多大?

老兄,如果你有100%的CPU利用率,那么你很可能缺less指标。 了解如何运行数据库调优顾问以构build最佳索引。

希望有所帮助

–Aaron Kempf MCITP:DBA