好主意? MS SQL 限制 CPU 防止系统锁定的亲和力?

Good idea? MS SQL Limit CPU Affinity to prevent system lock down?

最近我不得不 运行 在我们的 MSSQL 2008 R2 64 位服务器上进行一些繁重的一次性查询并遇到一个问题:执行它们会使 SQL 服务器消耗 100 % CPU 最终(在大约 20 秒内)使服务器完全没有响应。 因此,我被迫重新启动它或等到执行完成,这根据查询花费了很多时间。

我注意到,将 SQL 服务器的 CPU 亲和力设置为 7 个核心而不是任务管理器中的 8 个可用核心将保持服务器响应,因此如果花费的时间太长我可以取消我的查询(并继续进行查询优化而无需重新启动)。

但是限制 SQL 服务器的 CPU 亲和力是个好主意吗?

请分享您的想法。服务器正在用于 Web 应用程序。

事实证明这是个坏主意。

在 CPU affinity 7/8 的几天后,我注意到 SQL 服务器会持续加载 1-2 个内核,直到 100%,而其他内核可用。

当 CPU affinity 受限时,SQL Scheduler 可能无法正确分配工作负载。

多年以后,但万一有人在搜索中找到它,您的假设是正确的,即工作调度程序已锁定到一个核心。但是,要打开跟踪标志才能将其放回去:8002.