我们有一个包含大约 40 个不同(每个大约 1-5GB)数据库的 SQL 服务器。服务器是一个 8 核 2.3G CPU 和 32G 内存。27Gig 固定到 SQL Server。CPU 利用率几乎总是接近 100%,内存消耗约为 95%。这里的问题是 CPU 一直接近 100% 并试图了解原因。
我已经运行了一个初始检查,以查看哪个数据库通过使用这个脚本导致了高 CPU,但我无法详细证实真正消耗 CPU 的内容。顶部查询(来自所有数据库)只需大约 4 秒即可完成。IO 也不是瓶颈。
记忆会是这里的罪魁祸首吗?我检查了内存拆分,并且 OBJECT CACHE 占用了分配给 SQL Server 的大约 80% 的内存 (27G)。我希望这是正常的,只要涉及到很多 SP。运行分析器,我确实看到了很多重新编译,但主要是由于“临时表更改”、“延迟编译”等,并且不清楚这些重新编译是否是由于内存压力导致计划被抛出缓存的结果
欣赏任何想法。