PostgreSQL unix进程的详细查询

时间:2016-02-29 19:45:25

标签: linux postgresql process

当我在控制台窗口中键入ps aux以查看PostgesSQL的哪个进程占用所有CPU时,我收到了这样的结果:

$ ps aux | grep postgres
postgres: username dbname 127.0.0.1(39352) SELECT                                                                      
postgres: username dbname 127.0.0.1(39414) SELECT

是否可以配置PGSQL以接收类似的结果?

$ ps aux | grep postgres
postgres: username dbname 127.0.0.1(39352) SELECT id FROM clients WHERE ...                                                                      
postgres: username dbname 127.0.0.1(39414) INSERT INTO users (...

1 个答案:

答案 0 :(得分:1)

不,不可能。从理论上讲,你可以修改PostgreSQL服务器源代码,但可能没人会这样做。当您需要详细信息时,正确的解决方案是查询pg_stat_activity表。

[pavel@dhcppc2 citext]$ psql -c "select datname, client_addr, state, query from pg_stat_activity"
┌──────────┬─────────────┬────────┬─────────────────────────────────────────────────────────────────┐
│ datname  │ client_addr │ state  │                              query                              │
╞══════════╪═════════════╪════════╪═════════════════════════════════════════════════════════════════╡
│ postgres │ ( null )    │ active │ select datname, client_addr, state, query from pg_stat_activity │
└──────────┴─────────────┴────────┴─────────────────────────────────────────────────────────────────┘

(1行)