1

我正在一台用于特殊用途应用程序的老式平板电脑上运行 SQL Server Express 的实例。SQL Server 进程会定期启动并以 100% 的速度运行 CPU,从而使应用程序停止。(从技术上讲,它不会停止,它只是将其减慢到关键进程超时的程度。)在更换硬件之前还需要两到三年,所以这不是一个选择。有没有办法限制 SQL Server Express?

4

1 回答 1

3

有一些技术可以识别 MSSQL 上的 CPU 占用活动,但由于您的机器当时完全没有响应,因此您几乎没有选择。使用 SQL Profiler 运行后台跟踪记录到表或文件可能是您最好的选择。

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

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

(注意,如果您不想升级您的 MSSQL 服务器实例,您可能可以安装 Profiler)。

如果您以前从未使用 Profiler 来诊断占用 CPU 的查询,那么我建议您这样做:

  • 新跟踪 > 连接到您的 MSSQL 实例
  • 确保选择了“CPU”列
  • 确保检查所有查询(语句/查询/批处理/过程/等)的“开始”和“完成”事件。
  • 使用“列过滤器”仅显示“CPU”列中有值的事件
  • 选择跟踪的名称和目标(表或 .TRN 文件)
  • 启动跟踪并让它运行

遇到 CPU 问题后,一旦您的机器恢复:打开跟踪结果,特别注意 CPU 列,以及 100% 利用率开始的日期/时间。这是一个链接,其中包含有关使用 Profiler 分析跟踪的更多信息:

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

于 2013-02-26T02:39:10.627 回答