postgresql慢查詢定位-操作sql軌跡跟蹤

部署外掛contrib

rpm -ivh postgresql10-contrib-10。10-1PGDG。rhel7。x86_64。rpm ——force ——nodeps

配置postgresql。conf

shared_preload_libraries = ‘pg_stat_statements’pg_stat_statements。max = 1000pg_stat_statements。track = all #抓取所有sql

注:

如果不做上述操作,如下操作會報錯:pg_stat_statements must be loaded via shared_preload_libraries

建立擴充套件物件pg_stat_statements

該物件用於儲存sql執行相關執行資訊,也可以理解為一張表。

create extension pg_stat_statements;select * from pg_stat_statements;

重啟pg

systemctl restart postgresql-10。service

驗證查詢

SELECT query, calls, total_time, (total_time/calls) as average ,rows, 100。0 * shared_blks_hit /nullif(shared_blks_hit + shared_blks_read, 0) AS hit_percent FROM pg_stat_statements ORDER BY average DESC LIMIT 10;

重置查詢日誌,相當於清空表pg_stat_statements

select pg_stat_statements_reset() ;

如果喜歡我的文章,請關注我哦。後續會不斷為大家提供乾貨分享。請及時查收。