POSTGRESQL 锁表的问题
一、找出所的语句
select
wait.pid,
wait.query as wait_query,
wait.query_start as wait_query_start,
wait.locktype,
granted.pid as waitfor_pid,
granted.relation,
granted.datname || '.' || d.nspname || '.' || c.relname as name,
granted.transactionid,
granted.virtualxid,
granted.usename,
granted.client_addr,
granted.query_start,
granted.query
from
(select
a.query,
a.query_start,
b.pid,
b.relation,
b.transactionid,
b.page,
b.tuple,
b.locktype,
b.virtualxid
from
pg_stat_activity a,
pg_locks b
where
a.waiting = 't'
and a.pid = b.pid
and granted = 'f'
) wait
join
(select
b.pid,
b.usename,
b.client_addr,
b.backend_start,
b.query_start,
b.waiting,
b.query,
b.datname,
a.relation,
a.transactionid,
a.page,
a.tuple,
a.locktype,
a.virtualxid
from
pg_locks a,
pg_stat_activity b
where
a.pid = b.pid
and a.granted = 't'
) granted
on (
( wait.locktype = 'transactionid'
and granted.locktype = 'transactionid'
and wait.transactionid = granted.transactionid )
or
( wait.locktype = 'relation'
and granted.locktype = 'relation'
and wait.relation = granted.relation
)
or
( wait.locktype = 'virtualxid'
and granted.locktype = 'virtualxid'
and wait.virtualxid = granted.virtualxid )
or
( wait.locktype = 'tuple'
and granted.locktype = 'tuple'
and wait.relation = granted.relation
and wait.page = granted.page
and wait.tuple = granted.tuple )
)
left join
pg_class c
on ( c.relfilenode = wait.relation )
left join
pg_namespace d
on ( c.relnamespace = d.oid )
order by
granted.query_start
;
二、杀掉依赖的sql
select pg_terminate_backend(进程id)
POSTGRESQL 锁表的问题的更多相关文章
- postgresql 锁表查询语句
1 查找锁表的pid select pid from pg_locks l join pg_class t on l.relation = t.oid where t.relkind = 'r' an ...
- Postgresql 解决锁表
转载地址:https://blog.csdn.net/cicon/article/details/68068462##一.postgresql解决锁表--查询是否锁表了select oid from ...
- postgresql解决锁表
--查询是否锁表了select oid from pg_class where relname='可能锁表了的表'select pid from pg_locks where relation='上面 ...
- PostgreSQL的表空间
1. 表空间的概念 PostgreSQL中的表空间允许在文件系统中定义用来存放表示数据库对象的文件的位置.在PostgreSQL中表空间实际上就是给表指定一个存储目录. 2. 表空间的作用 官方解释 ...
- mysql遇到锁表常用命令
出现 waiting for table metadata lock 锁表的解决方法 1. show processlist; kill xxx; //xxx 为会话id 2.查询是否有未提交的事物 ...
- sqlserver锁表、解锁、查看销表 (转载)
sqlserver中怎么锁表.解锁.查看销表呢,下面我以三个不同的实例给各位朋友详细介绍一下有需要的朋友可参考一下. 更多详细内容请查看:http://www.111cn.net/database/O ...
- oracle 锁表问题
oracle执行表数据更新的时候,会遇到锁表问题,比方说,会遇到这样的问题,主要原因是这张表被其他人占用,修改数据没有提交.oracle为了避免脏数据的产生,在其安全机制下,锁住该表. 执行如下操作, ...
- 解决ora-00054 Oracle锁表问题
1.运行sql: select session_id from v$locked_object; 查出锁表的session,可能很多,正常是没有的 2.SELECT sid, serial#, u ...
- oracle并发请求异常,运行时间超长(一般情况下锁表)
1.如果前台无法取消请求出现错误: 则后台更新 update fnd_concurrent_requests set status_code = 'X', phase_code = 'C' w ...
随机推荐
- Struts2 注解模式
相信大家一定看到了两个class中定义了一样的action,不过看类的元数据,是不同的命名空间.这里比较重要(对我来说)的是 @Action(value = "/login", r ...
- 【python】python读取文件报错UnicodeDecodeError: 'gbk' codec can't decode byte 0xac in position 2: illegal multibyte sequence
python读取文件报错UnicodeDecodeError: 'gbk' codec can't decode byte 0xac in position 2: illegal multibyte ...
- Java_并发线程_Semaphore、CountDownLatch、CyclicBarrier、Exchanger
1.Semaphore 信号量(Semaphore),有时被称为信号灯,是在多线程环境下使用的一种设施, 它负责协调各个线程, 以保证它们可以正确.合理的使用公共资源. Semaphore当前在多线程 ...
- ViewFlipper的简单用法
ViewFlipper和ViewPager挺像的,都是一个view容器.内部可以添加多个view,只是viewpager可以通过左右滑动来切换view,而viewFlipper则没有这个功能,所以需要 ...
- Docker配置国内加速器加速镜像下载的方法
在搭建hyperledger fabric的开发环境的时候,用docker去下载镜像,好慢好慢,慢到下了一个下午没有下载完成,最后还是失败了.最后去网上找了一下,发现有配置国内加速器加速镜像下载的方法 ...
- ASP.NET C#根据HTML页面导出PDF
在启明星采购系统里,新增了导出PDF功能.整个功能使用了第三方软件 wkhtmltopdf(下载) 官网 https://wkhtmltopdf.org/ 提供有更多版本下载 他可以把HTML页面转换 ...
- Java Run-Time Data Areas
前言 本文主要介绍JVM的运行时数据区 来自Oracle文档 Java Virtual Machine Specification -- Chapter 2. The Structure of the ...
- C语言中将0到1000的浮点数用强制指针类型转换的方式生成一幅图像
搞过计算机图像的人都知道,图像中的每一个像素通常为一个整型数,它可以分成4个无符号的char类型,以表示其RGBA四个分量.一幅图像可以看做是一个二维整型数组.这里我会生成一个float数组,其数组大 ...
- c++流缓冲学习---rdbuf()
我们使用STL编程的时候有时候会想到把一个流对象指向的内容用另一个流对象来输出,比如想把一个文件的内容输出到显示器上,我们可以用简单的两行代码就可以完成: ifstream infile(" ...
- QT入门系列(3):控制台输出QString
方式一:使用qDebug()输出 QString str("liyifeng");qDebug() << str;12输出结果:"liyifeng" ...