为了优化使用底层Postgresql数据库的多线程应用程序的性能,我需要一个可以读取postgresql日志的工具的帮助,并提供有关哪个事务阻止另一个事务和事务统计信息的报告。
例如,这样的工具可以基于实际应用程序使用来识别阻塞事务的常见模式。这可以间接地建议不同的查询处理/分组,这可以很快带来更好的性能。一个众所周知的工具是pgbadger,但似乎它的主要“单位”是查询而不是交易。虽然报告了查询的延迟/阻止等,但我没有看到任何对事务的引用或者当时有什么事务处理锁(或者是什么查询)。
同时,postgresql日志记录能够使用虚拟事务ID报告BEGIN / COMMIT,因此这样的工具似乎是可行的。
我还看到了一些用于实时锁定监控的方法,但是我需要后处理日志(不仅仅是实时监控,这可能只有在碰巧遇到锁定时才有效)。
是否有一个工具,最好是免费的,可以对事务而不是查询进行后期分析,有助于理解应用程序锁定性能?