2013-02-18 41 views
1

我正在运行用于特殊用途应用程序的老式低效平板电脑上的SQL Server Express实例。 SQL Server进程会定期启动,并在100%时使CPU停止运行。 (从技术上讲,它并没有停下来,它只是减慢到关键进程超时的时间。)硬件被替换之前还有两三年的时间,所以这不是一种选择。有没有一种方法来节制SQL Server Express?SQL Server Express在单核平板电脑上以100%的CPU挂起

+0

你决定当它击中100%的CPU它是做什么?分页到磁盘?懒惰的作家? – 2013-02-18 14:35:06

+0

我不知道。我将如何检查? – Jeff 2013-02-18 14:49:56

+1

您正在使用什么版本的SQL Server Express?事件日志是否给你提供了关于发生什么的线索?我认为你本可以扼制SQL Server Express,但你可能要考虑解决这个问题。例如,您可以延长超时时间或提高应用程序的优先级。可能还有一个潜在的问题,但也许这足以让你度过未来的两三年。 – jerry 2013-02-22 21:46:07

回答

3

有几种技术可以确定MSSQL上的CPU占用活动,但由于当时您的机器完全没有响应,因此您没有多少选择。使用SQL事件探查器运行后台跟踪日志记录到表或文件可能是你最好的选择。

直到最近,您还需要使用MSSQL的付费版才能使用Profiler,但MS现在还包含MSSQL Express 2012 SP1的Profiler。这里有一个直接的下载链接:

http://www.microsoft.com/en-us/download/details.aspx?id=35579

(请注意,你或许可以安装探查不升级MSSQL服务器实例,如果你不希望)。

如果你从来没有使用探查之前诊断的CPU占用查询,这里就是我会建议去一下吧:

  • 新的跟踪>连接到您的MSSQL instace
  • 确保“CPU “列被选中
  • 确保所有查询(Statement/Query/Batch/Procedure/etc)的”已启动“和”已完成“事件都被检查。
  • 使用“列过滤器”,只显示事件,其中有在“CPU”列
  • 值的跟踪,和目的地(表或.TRN文件)
  • 开始选择一个名称跟踪并保持运行

遇到CPU问题后,一旦您的盒子恢复:打开跟踪结果,特别注意CPU列和100%利用率开始的日期/时间。这里有更多关于使用Profiler来分析跟踪链接:

http://msdn.microsoft.com/en-us/library/ms175848.aspx