apple=# select pid, backend_start, xact_start, query_start, waiting, state, backend_xid from pg_stat_activity where backend_xid is not null and now() - xact_start > interval '1 min';
-[ RECORD 1 ]-+------------------------------
pid | 14604
backend_start | 2018-12-04 15:06:19.306234+08 -- 连接创建时间
xact_start | 2018-12-04 16:08:25.528639+08 -- 事务begin时间
query_start | 2018-12-04 16:09:03.921005+08 -- 事务中最近的查询开始时间,一个事务内有多个查询时,只记录最近的一个
waiting | f                  -- 是否在等待,有锁时这里为t
state | idle in transaction -- 是否空闲,且仍然未提交
backend_xid | 718176 -- 当前事务的id,即xid。如果连接创建了,没有做任何操作,或者仅仅begin了,那么这里是空的;但是如果begin了,前面的xact_start就会记录事务开始时间。 另外,仅查询不会产生。

往往我们查看backend_xid不为空,的state为idle in transaction的连接,分析他的三个时间,来判断是不是长事务。

开两个连接,在一个连接中锁住表,另外一个连接查询表,可以看到查询的表waiting状态为t:

apple=# select pid, backend_start, xact_start, query_start, waiting, state, backend_xid from pg_stat_activity where backend_xid is null and now() - backend_start > interval '1 min';
-[ RECORD 1 ]-+------------------------------
pid | 14604
backend_start | 2018-12-04 15:06:19.306234+08
xact_start | 2018-12-04 16:23:23.420563+08
query_start | 2018-12-04 16:23:23.420563+08
waiting | t
state | active
backend_xid |
-[ RECORD 2 ]-+------------------------------
pid | 15509
backend_start | 2018-12-04 15:47:22.826488+08
xact_start | 2018-12-04 16:23:26.41356+08
query_start | 2018-12-04 16:23:26.41356+08
waiting | f
state | active
backend_xid |
-[ RECORD 3 ]-+------------------------------
pid | 16235
backend_start | 2018-12-04 16:20:22.398526+08
xact_start | 2018-12-04 16:23:04.552078+08
query_start | 2018-12-04 16:23:18.629458+08
waiting | f
state | idle in transaction
backend_xid |

PostgreSQL查询长连接的更多相关文章

  1. PostgreSQL查询数据(连接查询和子查询)

    原料 --用户表 create table "SysUser"( "UserId" serial, --用户Id,自增 "UserName" ...

  2. 使django与数据库保持长连接

    最近遇到一个很蛋疼的问题,写了一个后台管理系统, 由于是后台管理系统,所以使用频率不是很高,当django程序在闲置一段时间后,再次打开后台系统,就变得很慢,然后又好了.查了很多方面,从模板引擎到请求 ...

  3. nginx长连接设置

    http { keepalive_timeout 20; --长连接timeout keepalive_requests 8192; --每个连接最大请求数} events { worker_conn ...

  4. 误人子弟的网络,谈谈HTTP协议中的短轮询、长轮询、长连接和短连接

    引言 最近刚到公司不到一个月,正处于熟悉项目和源码的阶段,因此最近经常会看一些源码.在研究一个项目的时候,源码里面用到了HTTP的长轮询.由于之前没太接触过,因此LZ便趁着这个机会,好好了解了一下HT ...

  5. Web 通信 之 长连接、长轮询(转)

    Web 通信 之 长连接.长轮询(long polling) 基于HTTP的长连接,是一种通过长轮询方式实现"服务器推"的技术,它弥补了HTTP简单的请求应答模式的不足,极大地增强 ...

  6. Web 通信 之 长连接、长轮询(long polling)

    基于HTTP的长连接,是一种通过长轮询方式实现"服务器推"的技术,它弥补了HTTP简单的请求应答模式的不足,极大地增强了程序的实时性和交互性. 一.什么是长连接.长轮询? 用通俗易 ...

  7. 浅谈Websocket、Ajax轮询和长连接(long pull)

    最近看到了一些介绍Websocket的文章,觉得挺有用,所以在这里将自己的对其三者的理解记录一下. 1.什么是Websocket Websocket是HTML5中提出的新的协议,注意,这里是协议,可以 ...

  8. Web 通信 之 长连接、长轮询(long polling)(转)

    基于HTTP的长连接,是一种通过长轮询方式实现"服务器推"的技术,它弥补了HTTP简单的请求应答模式的不足,极大地增强了程序的实时性和交互性. 一.什么是长连接.长轮询? 用通俗易 ...

  9. Nginx与Tomcat、Client之间请求的长连接配置不一致问题解决[转]

    http://bert82503.iteye.com/blog/2152613 前些天,线上出现“服务端长连接与客户端短连接引起Nginx的Writing.Active连接数过高问题”,这个是由于“服 ...

随机推荐

  1. GlobeMapper生成Google瓦片

    GlobeMapper真牛,生成自己的瓦片叠在GoogleMap的地图上,效果如下:

  2. blockchain 区块链的开发,基于python或node js

    现在很多人用node js做区块链的开发,因为点对点并发是区块链中的难点技术之一,而node js天然的对并发支持比较好,因此比较有优势. http://ecomunsing.com/build-yo ...

  3. python3 os.walk()使用

    os.walk() 方法用于通过在目录树种游走输出在目录中的文件名,向上或者向下. 在Unix,Windows中有效. os.walk(top[, topdown=True[, onerror=Non ...

  4. BackgroundWorker+ProgressBar+委托 实现多线程、进度条

    上文在<C# 使用BackgroundWorker实现WinForm异步>介绍了如何通过BackgroundWorker实现winForm异步通信,下面介绍如何通过BackgroundWo ...

  5. Android ContentResolver

    在Android 应用程序之间数据共享—-ContentResolver中,已经说明了Android是如何实现应用程序之间数据共享的,并详细解析了如何获取其他应用 程序共享的数据.ContentPro ...

  6. uva10817 dijkstra

    大白书P330 #include <iostream> #include <cstdio> #include <algorithm> #include <st ...

  7. linux 导入导出mysql相关问题

    linux 导入mysql报错 CREATE DATABASE `mmm` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;   CREATE D ...

  8. 微信小程序:JS 交互逻辑

    微信小程序:JS 交互逻辑 一.JS 交互逻辑 一个服务仅仅只有界面展示是不够的,还需要和用户做交互:响应用户的点击.获取用户的位置等等.在小程序里边,我们就通过编写 JS 脚本文件来处理用户的操作. ...

  9. mailx配置安装

    mailxwget http://ftp.debian.org/debian/pool/main/h/heirloom-mailx/heirloom-mailx_12.5.orig.tar.gztar ...

  10. 如何在编辑框中使用IAutoComplete接口(转载)

    出自:http://www.vckbase.com/index.php/wv/27.html 如果可能我想用打包类来实现.唉!,就叫我封装先生吧. 你算是找对地方了.但是我要先声明我的解决办法不是你所 ...