标签
PostgreSQL , pg_stat_statements , TOP SQL
背景
数据库是较大型的应用,对于繁忙的数据库,需要消耗大量的内存、CPU、IO、网络资源。
SQL优化是数据库优化的手段之一,优化什么SQL效果最佳呢?首先要了解最耗费资源的SQL,即TOP SQL。
从哪里可以了解数据库的资源都被哪些SQL消耗掉了呢?
资源分为多个维度,CPU,内存,IO等。如何能了解各个维度层面的TOP SQL呢?
pg_stat_statements插件可以用于统计数据库的资源开销,分析TOP SQL。
一、安装pg_stat_statements
pg_stat_statements是PostgreSQL的核心插件之一。可以在编译PostgreSQL时安装,也可以单独安装。
编译时安装
make world
make install-world
单独安装
cd src/contrib/pg_stat_statements/
make; make install
二、加载pg_stat_statements模块
vi $PGDATA/postgresql.conf
shared_preload_libraries='pg_stat_statements'
如果要跟踪IO消耗的时间,还需要打开如下参数