症状
假设您有一个运行Microsoft SQL Server 2014 或 2012 SP3 (32 核或更多核) 多核处理器。 当版本控制清理任务在 AlwaysOn 次要副本 (replica) 上运行时,CPU 使用率可能接近 100%。 此外,SQL Server 错误日志中还记录了一个类似于以下内容的“非生成计划程序”错误:
date time.80 服务器 使用“dbghelp.dll”版本“4.0.5”
date time.81 服务器 ***无法获取 spid 0 的线程上下文
date time.81 服务器 * *******************************************************************************
date time.81 服务器 *
date time.81 服务器 * 开始堆栈转储:
date time.81 服务器 * 日期时间 spid 2944
date time.81 服务器 *
date time.81 服务器 * 非生成计划程序
date time.81 服务器 *
date time.81 服务器 * *******************************************************************************
date time.81 转储的服务器堆栈签名已0x000000000000015F
date time.22 Server [INFO] Identity 开始结束 |状态 结果 错误 推测 已准备 LazyCommit ReadOnly |事务数据库 ThreadId |ReadSet WriteSet ScanSet 保存点 LogSizeRq |CommitDep TotalComm 依赖项 0 依赖项 1 依赖项 2 依赖项 3 依赖项 4 依赖项 5 依赖项 6 依赖项 7 |区域位置 |
date time.33 服务器外部转储进程返回代码 0x20000001。
date time.33 服务器进程 0:0:0 (0x32e8) 辅助角色0x0000000005B54160在计划程序 12 上似乎不生成。 线程创建时间:13094297045567。 大约使用的线程 CPU:内核 0 毫秒,用户 51979 毫秒。 进程利用率 2%。 系统空闲 97%。 间隔: 70153 ms.
date time.45 服务器进程 0:0:0 (0x32e8) 辅助角色0x0000000005B54160在计划程序 12 上似乎不生成。 线程创建时间:13094297045567。 大约使用的线程 CPU:内核 0 毫秒,用户 103459 毫秒。 进程利用率 2%。 系统空闲 97%。 间隔:136828 毫秒。
date time.58 服务器进程 0:0:0 (0x32e8) 辅助角色0x0000000005B54160在计划程序 12 上似乎不生成。 线程创建时间:13094297045567。 大约使用的线程 CPU:内核 0 毫秒,用户 146001 毫秒。 进程利用率 2%。 系统空闲 97%。 间隔:196951 毫秒。
date time.70 服务器进程 0:0:0 (0x32e8) 辅助角色0x0000000005B54160在计划程序 12 上似乎不生成。 线程创建时间:13094297045567。 大约使用的线程 CPU:内核 0 毫秒,用户 193269 毫秒。 进程利用率 2%。 系统空闲 97%。 间隔:257073 毫秒。
解决方法
此问题已首先在 SQL Server 的以下累积更新中修复:
SQL Server 2014 Service Pack 1 累积更新 6
SQL Server 2012 SP3 累积更新 3
SQL Server 2012 SP2 累积更新 12
关于 SQL Server 的累积更新
SQL Server 的每个新累积更新都包含上一个累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:
SQL Server 2014 的最新累计更新
SQL Server 2012 SP3 的最新累计更新
SQL Server 2012 SP2 的最新累计更新
解决方法
要暂时解决此问题,请重启运行 SQL Server 实例的计算机。
状态
Microsoft 已确认在 "适用于" 部分中所列的 Microsoft 产品中存在问题。
参考资料
了解 Microsoft 用于描述软件更新的 术语 。