PostgreSQL之查找最慢的SQL 的方法
发布时间:2020-12-13 16:57:34 所属栏目:百科 来源:网络整理
导读:帮帮忙顶一下这个文章,非常好的一个文章,非常值得了解。 来自:http://blog.chinaunix.net/uid-24774106-id-3780341.html PostgreSQL部署上之后,经过一段时间的运行,我们比较关心那些SQL运行时间比较长,或者说那些SQL执行的特别慢,拖累的性能,只有找
帮帮忙顶一下这个文章,非常好的一个文章,非常值得了解。 来自:http://blog.chinaunix.net/uid-24774106-id-3780341.html
PostgreSQL部署上之后,经过一段时间的运行,我们比较关心那些SQL运行时间比较长,或者说那些SQL执行的特别慢,拖累的性能,只有找到这些SQL,才能有针对性地对这些SQL进行优化,提升PostgreSQL的性能。
可以看出,pg_stat_statements统计了SQL的很多信息,方便我们分析SQL的性能。但是这个属于PostgreSQL的扩展,需要修改postgresql.conf,才能使用: 操作步骤如下 1 修改配置文件,并且重启PostgreSQL方能生效
CREATEEXTENSION pg_stat_statements;
从此之后,PostgreSQL就能记录SQL的统计信息。
上面的表格虽然丰富,其实我们基本比较关心执行最慢的SQL,如何查看执行最慢的10条SQL? SELECT query,calls(total_time/calls)asaveragerows 100.0*shared_blks_hit/nullif(shared_blks_hit+shared_blks_readAShit_percent
我在我本地的DB,查找最慢的2条SQL,输出如下:
在我另一台机器上,用pgadmin查看: 统计结果一直都在,重启也不会清零,那么统计结果如何清零重新统计呢?执行下面SQL即可: selectpg_stat_statements_reset(;
找到最耗时的SQL,我们就能针对这些耗时的SQL,查看是否有优化的余地。
参考文献: 1 More on Postgres Performance 2 PostgreSQL manual (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |