我每天都在数据库服务器上看到 CPU 峰值,我发现索引已经有一段时间没有重建了。这可能是这些尖峰的原因吗?
问问题
1528 次
2 回答
0
碎片化可能会导致更多的 CPU 负载,但不会导致峰值。为什么会呢?看看别处。找出高峰期间正在运行的查询,并查看具有大量 CPU 的长时间运行的查询。
于 2013-08-28T21:03:24.757 回答
0
是的,但这完全取决于该特定表中可用的记录数,碎片化可能导致 CPU 峰值以及负载期间服务器的 100% CPU 利用率。因为在加载过程中通过索引搜索页面时,CPU有4毫秒的时间来执行查询,如果在CPU上执行的查询由于碎片存储引擎必须回溯,需要内存中的额外页面(内存中不可用)在页面分散的 B+ 树中来回移动,导致 CPU 必须将该查询溢出到等待者列表中,一旦可用的数据移动到可运行队列(查询等待 CPU 执行的位置)。试想一下,如果表有大量记录,那么碎片肯定会对 CPU 产生影响。
于 2018-07-11T07:03:22.397 回答