相關(guān)鏈接:
pgsql編譯安裝
pgBouncer連接池
一、說明
pg_stat_statements 提供了跟蹤服務(wù)器執(zhí)行的所有 SQL 語句的規(guī)劃和執(zhí)行統(tǒng)計信息的方法。當(dāng) pg_stat_statements 處于活動狀態(tài)時,它會跟蹤服務(wù)器上所有數(shù)據(jù)庫的統(tǒng)計信息。該模塊收集到的統(tǒng)計數(shù)據(jù)可以通過一個名為 pg_stat_statements 的視圖進行訪問。
官方文檔:pg_stat_statements文檔
二、插件安裝啟動
(一)編譯安裝
源碼在pgsql包里就提供了,可以在編譯pgsql的時候就安裝,也可以隨后編譯
1.進入到pgsql安裝包目錄
只需要編譯這個組件就行,進入到解壓的pgsql安裝包目錄
cd /usr/local/postgresql-xxx
該插件是自帶的
cd contrib/pg_stat_statements
2.編譯安裝
make && make install
(二)修改配置文件
1.編輯postgresql.conf文件
默認編譯安裝后的目錄為下面的,如果不是用的默認,使用find查找
vi /var/pgsqldata/postgresql.conf
找到 Add settings for extensions here,在下面寫插件的參數(shù)
2.添加以下內(nèi)容
具體每條有說明
## 加載模塊
shared_preload_libraries='pg_stat_statements'
## 跟蹤IO消耗的時間
track_io_timing = on
## 單條SQL的最長長度
track_activity_query_size = 2048
## 最多保留多少條信息
pg_stat_statements.max = 10000
## 嵌套sql設(shè)置
## 參數(shù)值:all - (所有SQL), top-函數(shù)內(nèi)的sql不被跟蹤, none - (不跟蹤)
pg_stat_statements.track = all
## 是否跟蹤非DML語句
pg_stat_statements.track_utility = off
## 重啟后是否保留統(tǒng)計信息
pg_stat_statements.save = on
3.重啟pgsql
systemctl restart pgsql
(三)啟用插件并檢查
1.在需要的數(shù)據(jù)庫中啟用
使用pgsql管理工具或者在psql命令行里輸入
create extension pg_stat_statements;
2.檢查
上面的命令沒有錯誤即說明沒問題
三、應(yīng)用
啟用后,需要在sql中查詢結(jié)果
1.最耗IO的sql統(tǒng)計
最耗IO的20條
select userid::regrole, dbid, query from pg_stat_statements order by (blk_read_time+blk_write_time)/calls desc limit 20;
2.最耗時的sql統(tǒng)計
最耗時的20條
select userid::regrole, dbid, query from pg_stat_statements order by mean_time desc limit 20;
3.最耗共享內(nèi)存的sql統(tǒng)計
最耗內(nèi)存的20條文章來源:http://www.zghlxwxcb.cn/news/detail-730384.html
select userid::regrole, dbid, query from pg_stat_statements order by (shared_blks_hit+shared_blks_dirtied) desc limit 20;
4.最耗空間的sql統(tǒng)計
最耗空間的20條文章來源地址http://www.zghlxwxcb.cn/news/detail-730384.html
select userid::regrole, dbid, query from pg_stat_statements order by temp_blks_written desc limit 20;
到了這里,關(guān)于Postgresql 模塊插件之pg_stat_statements的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!