PostgreSQL 锁监控
2016-06-28 09:08
603 查看
PG>9.2
postgres=# SELECT blocked_locks.pid AS blocked_pid,
postgres-# blocked_activity.usename AS blocked_user,
postgres-# blocking_locks.pid AS blocking_pid,
postgres-# blocking_activity.usename AS blocking_user,
postgres-# blocked_activity.query AS blocked_statement,
postgres-# blocking_activity.query AS current_statement_in_blocking_process
postgres-# FROM pg_catalog.pg_locks blocked_locks
postgres-# JOIN pg_catalog.pg_stat_activity blocked_activity ON blocked_activity.pid = blocked_locks.pid
postgres-# JOIN pg_catalog.pg_locks blocking_locks
postgres-# ON blocking_locks.locktype = blocked_locks.locktype
postgres-# AND blocking_locks.DATABASE IS NOT DISTINCT FROM blocked_locks.DATABASE
postgres-# AND blocking_locks.relation IS NOT DISTINCT FROM blocked_locks.relation
postgres-# AND blocking_locks.page IS NOT DISTINCT FROM blocked_locks.page
postgres-# AND blocking_locks.tuple IS NOT DISTINCT FROM blocked_locks.tuple
postgres-# AND blocking_locks.virtualxid IS NOT DISTINCT FROM blocked_locks.virtualxid
postgres-# AND blocking_locks.transactionid IS NOT DISTINCT FROM blocked_locks.transactionid
postgres-# AND blocking_locks.classid IS NOT DISTINCT FROM blocked_locks.classid
postgres-# AND blocking_locks.objid IS NOT DISTINCT FROM blocked_locks.objid
postgres-# AND blocking_locks.objsubid IS NOT DISTINCT FROM blocked_locks.objsubid
postgres-# AND blocking_locks.pid != blocked_locks.pid
postgres-#
postgres-# JOIN pg_catalog.pg_stat_activity blocking_activity ON blocking_activity.pid = blocking_locks.pid
postgres-# WHERE NOT blocked_locks.GRANTED;
blocked_pid | blocked_user | blocking_pid | blocking_user | blocked_statement | current_statement_in_blocking_process
-------------+--------------+--------------+---------------+-------------------+---------------------------------------
(0 rows)
PG< 9.2:
postgres=# SELECT blocked_locks.pid AS blocked_pid,
postgres-# blocked_activity.usename AS blocked_user,
postgres-# blocking_locks.pid AS blocking_pid,
postgres-# blocking_activity.usename AS blocking_user,
postgres-# blocked_activity.query AS blocked_statement,
postgres-# blocking_activity.query AS current_statement_in_blocking_process
postgres-# FROM pg_catalog.pg_locks blocked_locks
postgres-# JOIN pg_catalog.pg_stat_activity blocked_activity ON blocked_activity.pid = blocked_locks.pid
postgres-# JOIN pg_catalog.pg_locks blocking_locks
postgres-# ON blocking_locks.locktype = blocked_locks.locktype
postgres-# AND blocking_locks.DATABASE IS NOT DISTINCT FROM blocked_locks.DATABASE
postgres-# AND blocking_locks.relation IS NOT DISTINCT FROM blocked_locks.relation
postgres-# AND blocking_locks.page IS NOT DISTINCT FROM blocked_locks.page
postgres-# AND blocking_locks.tuple IS NOT DISTINCT FROM blocked_locks.tuple
postgres-# AND blocking_locks.virtualxid IS NOT DISTINCT FROM blocked_locks.virtualxid
postgres-# AND blocking_locks.transactionid IS NOT DISTINCT FROM blocked_locks.transactionid
postgres-# AND blocking_locks.classid IS NOT DISTINCT FROM blocked_locks.classid
postgres-# AND blocking_locks.objid IS NOT DISTINCT FROM blocked_locks.objid
postgres-# AND blocking_locks.objsubid IS NOT DISTINCT FROM blocked_locks.objsubid
postgres-# AND blocking_locks.pid != blocked_locks.pid
postgres-#
postgres-# JOIN pg_catalog.pg_stat_activity blocking_activity ON blocking_activity.pid = blocking_locks.pid
postgres-# WHERE NOT blocked_locks.GRANTED;
blocked_pid | blocked_user | blocking_pid | blocking_user | blocked_statement | current_statement_in_blocking_process
-------------+--------------+--------------+---------------+-------------------+---------------------------------------
(0 rows)
PG< 9.2:
SELECT bl.pid AS blocked_pid, a.usename AS blocked_user, kl.pid AS blocking_pid, ka.usename AS blocking_user, a.current_query AS blocked_statement FROM pg_catalog.pg_locks bl JOIN pg_catalog.pg_stat_activity a ON a.procpid = bl.pid JOIN pg_catalog.pg_locks kl ON kl.transactionid = bl.transactionid AND kl.pid != bl.pid JOIN pg_catalog.pg_stat_activity ka ON ka.procpid = kl.pid WHERE NOT bl.GRANTED; https://wiki.postgresql.org/wiki/Lock_Monitoring
相关文章推荐
- mysql监控管理工具--innotop
- mac OS安装postgreSQL和psycopg的坑
- go-mysql-elasticsearch实现mysql 与elasticsearch实时同步深入详解
- postgresql----COPY之表与文件之间的拷贝
- orcale装完sqldevelop启动不了
- SQLiteOpenHelper 类
- 14. ubuntu 16.04 LTS 安装sqldeveloper
- MoNyog 5.72 mysql监控工具的介绍
- 分布式监控系统Zabbix-3.0.3-完整安装记录(2)-添加mysql监控
- MySQL server has gone away
- MySQL的多存储引擎架构
- SQL语句中的 truncate 、delete与drop区别
- MySQL的多存储引擎架构
- 蛋疼的mysql_ping()以及MYSQL_OPT_RECONNECT
- 在线建立或重做mysql主从复制架构方法(传统模式和GTID模式)
- sql语句----drop、truncate和delete 精屁解析--终于知道ID为啥有时候不连续了
- PL/SQL developer里面查dblink会要commit
- Oracle GoldenGate for Sql Server连接ODBC失败的处理方法
- PL/SQL Developer报错Dynamic Performance Tables not accessible
- SQL Server 2005架构