Postgresql 锁查看
之前版本 PostgreSQL 的 pg_stat_activity 视图的 waiting 字段判断会话是否等待锁资源(通俗地讲, waiting 值为true表示申请不到锁资源处于等待状态),但是并不会给出具体的锁的信息,9.6 版本之后 pg_stat_activity 视图的 waiting 字段被 wait_event_type 和 wait_event 字段取代,这两个字段分别代表等待事件的类型、等待事件名称;
SELECT pid, wait_event_type, wait_event FROM pg_stat_activity;
| Wait Event Type | Wait Event Name | Description |
|---|---|---|
| LWLockNamed | ShmemIndexLock | Waiting to find or allocate space in shared memory. |
| OidGenLock | Waiting to allocate or assign an OID. | |
| XidGenLock | Waiting to allocate or assign a transaction id. | |
| ProcArrayLock | Waiting to get a snapshot or clearing a transaction id at transaction end. | |
| SInvalReadLock | Waiting to retrieve or remove messages from shared invalidation queue. | |
| SInvalWriteLock | Waiting to add a message in shared invalidation queue. | |
| WALBufMappingLock | Waiting to replace a page in WAL buffers. | |
| WALWriteLock | Waiting for WAL buffers to be written to disk. | |
| ControlFileLock | Waiting to read or update the control file or creation of a new WAL file. | |
| CheckpointLock | Waiting to perform checkpoint. | |
| CLogControlLock | Waiting to read or update transaction status. | |
| SubtransControlLock | Waiting to read or update sub-transaction information. | |
| MultiXactGenLock | Waiting to read or update shared multixact state. | |
| MultiXactOffsetControlLock | Waiting to read or update multixact offset mappings. | |
| MultiXactMemberControlLock | Waiting to read or update multixact member mappings. | |
| RelCacheInitLock | Waiting to read or write relation cache initialization file. | |
| CheckpointerCommLock | Waiting to manage fsync requests. | |
| TwoPhaseStateLock | Waiting to read or update the state of prepared transactions. | |
| TablespaceCreateLock | Waiting to create or drop the tablespace. | |
| BtreeVacuumLock | Waiting to read or update vacuum-related information for a Btree index. | |
| AddinShmemInitLock | Waiting to manage space allocation in shared memory. | |
| AutovacuumLock | Autovacuum worker or launcher waiting to update or read the current state of autovacuum workers. | |
| AutovacuumScheduleLock | Waiting to ensure that the table it has selected for a vacuum still needs vacuuming. | |
| SyncScanLock | Waiting to get the start location of a scan on a table for synchronized scans. | |
| RelationMappingLock | Waiting to update the relation map file used to store catalog to filenode mapping. | |
| AsyncCtlLock | Waiting to read or update shared notification state. | |
| AsyncQueueLock | Waiting to read or update notification messages. | |
| SerializableXactHashLock | Waiting to retrieve or store information about serializable transactions. | |
| SerializableFinishedListLock | Waiting to access the list of finished serializable transactions. | |
| SerializablePredicateLockListLock | Waiting to perform an operation on a list of locks held by serializable transactions. | |
| OldSerXidLock | Waiting to read or record conflicting serializable transactions. | |
| SyncRepLock | Waiting to read or update information about synchronous replicas. | |
| BackgroundWorkerLock | Waiting to read or update background worker state. | |
| DynamicSharedMemoryControlLock | Waiting to read or update dynamic shared memory state. | |
| AutoFileLock | Waiting to update the postgresql.auto.conf file. | |
| ReplicationSlotAllocationLock | Waiting to allocate or free a replication slot. | |
| ReplicationSlotControlLock | Waiting to read or update replication slot state. | |
| CommitTsControlLock | Waiting to read or update transaction commit timestamps. | |
| CommitTsLock | Waiting to read or update the last value set for the transaction timestamp. | |
| ReplicationOriginLock | Waiting to setup, drop or use replication origin. | |
| MultiXactTruncationLock | Waiting to read or truncate multixact information. | |
| LWLockTranche | clog | Waiting for I/O on a clog (transaction status) buffer. |
| commit_timestamp | Waiting for I/O on commit timestamp buffer. | |
| subtrans | Waiting for I/O a subtransaction buffer. | |
| multixact_offset | Waiting for I/O on a multixact offset buffer. | |
| multixact_member | Waiting for I/O on a multixact_member buffer. | |
| async | Waiting for I/O on an async (notify) buffer. | |
| oldserxid | Waiting to I/O on an oldserxid buffer. | |
| wal_insert | Waiting to insert WAL into a memory buffer. | |
| buffer_content | Waiting to read or write a data page in memory. | |
| buffer_io | Waiting for I/O on a data page. | |
| replication_origin | Waiting to read or update the replication progress. | |
| replication_slot_io | Waiting for I/O on a replication slot. | |
| proc | Waiting to read or update the fast-path lock information. | |
| buffer_mapping | Waiting to associate a data block with a buffer in the buffer pool. | |
| lock_manager | Waiting to add or examine locks for backends, or waiting to join or exit a locking group (used by parallel query). | |
| predicate_lock_manager | Waiting to add or examine predicate lock information. | |
| Lock | relation | Waiting to acquire a lock on a relation. |
| extend | Waiting to extend a relation. | |
| page | Waiting to acquire a lock on page of a relation. | |
| tuple | Waiting to acquire a lock on a tuple. | |
| transactionid | Waiting for a transaction to finish. | |
| virtualxid | Waiting to acquire a virtual xid lock. | |
| speculative token | Waiting to acquire a speculative insertion lock. | |
| object | Waiting to acquire a lock on a non-relation database object. | |
| userlock | Waiting to acquire a userlock. | |
| advisory | Waiting to acquire an advisory user lock. | |
| BufferPin | BufferPin | Waiting to acquire a pin on a buffer. |
- LWLockNamed:表示backend后台进程等待某种特定的轻量级锁;
- LWLockTranche:表示backend后台进程等待一组相关轻量级锁;
- Lock:表示backend后台进程等待重量级的锁,通常是指 relation、tuple、page、transactionid 等子类型锁;
- BufferPin:表示server process 后台进程等待 buffer pin,手册上解释为 Waiting to acquire a pin on a buffer,比较难理解,以后想想如何模拟此场景。
Postgresql 锁查看的更多相关文章
- mysql查看锁查看
关键词:mysql锁争用,mysql锁查看 --------------------- 作者:边城cn 来源:CSDN 原文:https://blog.csdn.net/miyatang/articl ...
- postgresql 锁的定位
今天碰到了一个问题,锁定穷根追底把postgresql的锁研究了一番. 数据库查看锁 可以通过表 pg_locks来查看有哪些锁.sql如下: select a.locktype,a.database ...
- PostgreSQL 锁机制浅析
锁机制在 PostgreSQL 里非常重要 (对于其他现代的 RDBMS 也是如此).对于数据库应用程序开发者(特别是那些涉及到高并发代码的程序员),需要对锁非常熟悉.对于某些问题,锁需要被重点关注与 ...
- PostgreSQL 锁 之 关系级锁
1.关于锁的基本信息 PostgreSQL 有各种各样的技术来锁定某些东西(或者至少是这样称呼的).因此,我将首先用最笼统的术语解释为什么需要锁,可用的锁类型以及它们之间的区别.然后我们将弄清楚 Po ...
- PostgreSQL 锁等待诊断详解
摘要PostgreSQL和大多数传统RDBMS一样,都设计了大量的锁来保证并发操作的数据一致性. 同时PG在设计锁等待时,以队列方式存储等待锁. 参考 ProcSleep()@src/backend/ ...
- 【MySQL】锁——查看当前数据库锁请求的三种方法 20
MySQL提供了查看当前数据库锁请求的三种方法:1. show full processlist命令 观察state和info列 2. show engine innodb status\G ...
- Linux下,postgreSQL的查看与重启
查看命令:ps aux | grep postgresnetstat -npl | grep postgres 方法1: #su - postgres $pg_ctl restart 方法2: #su ...
- PostgreSQL 锁监控
PG>9.2 postgres=# SELECT blocked_locks.pid AS blocked_pid,postgres-# blocked_activity.usename AS ...
- PostgreSQL常用查看命令
1. 查看当前库sehcma大小,并按schema排序 SELECT schema_name, pg_size_pretty(sum(table_size)::bigint) as "dis ...
随机推荐
- oracle以逗号分隔查询结果列表
select wmsys.wm_concat(id) from table_name where id >= 5000 and id < 6000
- 第八章 高级搜索树 (xa4)红黑树:删除
- 源码包的解压 .tar.gz /.tar.bz2的解压
解压方式如下: .tar.gz 格式解压为 tar -zxvf xx.tar.gz .tar.bz2 格式解压为 tar -jxvf ...
- 140. Word Break II (String; DP,DFS)
Given a string s and a dictionary of words dict, add spaces in s to construct a sentence where each ...
- 常用修图工具的一些使用技巧及问题解决方法——ai
一.ai如何修改画布大小 一. ai如何修改画布大小: 1. 左上角菜单中的文件——文档设置(也可以直接点菜单栏下边的控制栏中的文档设置) 2. 文档设置界面中,点击右上角“编辑画板“ 3. 此时面板 ...
- VC字符串处理整理
场景: 1.在存储数据时有时接口需要合并字符串值,并以某些特殊字符来合并部分,到需要的时候再分割它.如一些数值,人名等. 2.C++有strtok,stringstream和find函数来实现分割.可 ...
- 禁用xampp的ssl功能
按照Disable SSL on XAMPP for Windows文章里讲解的步骤如下: 1 以管理员身份启动XAMPP控制面板,点击Config按钮打开httpd.conf 分别注释171,539 ...
- pthread_exit pthread_join
int pthread_join(pthread_t thread, void **retval); int pthread_detach(pthread_t thread); void pthrea ...
- PAT 1035 插入与归并(25)(代码+思路+测试点分析)
1035 插入与归并(25 分) 根据维基百科的定义: 插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列.每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置.如此迭代直到 ...
- 关于神奇的浮点型double变量
1.因为double类型都是1.xxxxxxxxx(若干个0和1,二进制)乘以2的若干次幂来表示一个数,所以,和十进制的小数势必不能够一一对应,因为位数有限,总要有一个精度(两个数之间的实数是任意多的 ...