我每天都在数据库服务器上看到CPU峰值,我发现索引没有重建很长一段时间。这可能是这些峰值的原因吗?
答案 0 :(得分:0)
碎片可能会导致更多CPU负载,但不会导致峰值。为什么会这样?看别处。找出在峰值期间运行的查询,并查看具有大量CPU的长时间运行的查询。
答案 1 :(得分:0)
是的,但这完全取决于该特定表中可用的记录数,碎片可能会导致CPU峰值以及负载期间服务器的100%CPU利用率。 因为在加载过程中通过索引搜索页面时,CPU需要4毫秒的时间来执行查询,如果由于碎片化存储引擎而导致在CPU上执行的查询需要内存中的其他页面(在内存中不可用),则必须回头查看在B +树(页面分散)中来回移动,导致CPU尚未将该查询溢出到服务员列表中,一旦可用数据移动到可运行队列(查询等待CPU执行)。 试想一下,如果表中有大量记录,那么肯定会有碎片会对CPU产生影响。