Java运行时监控,第3部分: 监控应用程序生态系统的性能与可用性(2)2011-02-13 IBM Nicholas Whitehead在这个场景中,我构造了一个有用的例子,而没有在 sales_order 表上创建索引。因此,监控将会揭示更多的顺序扫描(按照数据库用语来说为表扫描),它是一个低效的检索数据的机制,这是因为它要读取表中的每一行。顺序元组读取 — 主要指使用顺序扫描读取的行的数量 — 也一样。行和元组之间有一个很大的差别,但是在这里没有关系。要弄清楚这个差异,您可以查看 PostgreSQL 文档网站(参见 参考资料)。看一看 APM 显示的这些统计信息,很明显我的数据库遗漏了一个索引。如图 11 所示:图 11. 顺序读取

注意到了这一点后,我赶紧触发了两个 SQL 语句来索引表格。随后的结果是两个顺序操作都降到了零,而本来为零的索引操作现在却运行起来。如图 12 所示:图 12. 索引后

这个索引的创建在整个系统中发生了连锁反应。另一个明显稳定下来的指标是数据库主机上的 User CPU %。如图 13 所示:图 13. 索引后的 CPU