Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查询以查找Postgresql数据库中当前正忙的表_Postgresql - Fatal编程技术网

查询以查找Postgresql数据库中当前正忙的表

查询以查找Postgresql数据库中当前正忙的表,postgresql,Postgresql,请建议查询以查找表(或者,作为额外选项,可能是数据库中的其他对象)在Postgresql数据库中查询时正忙着,即: 查询时正在填写表 查询时正在读取表 等等 当然,查询活动本身应该从结果中排除,因为它是服务/工具/维护活动 谢谢你你在找这样的东西吗 SELECT l.relation::regclass AS tablename, CASE l.mode WHEN 'AccessShareLock' THEN 'select' WHEN

请建议查询以查找表(或者,作为额外选项,可能是数据库中的其他对象)在Postgresql数据库中查询时正忙着,即:

  • 查询时正在填写表
  • 查询时正在读取表
  • 等等
当然,查询活动本身应该从结果中排除,因为它是服务/工具/维护活动


谢谢你

你在找这样的东西吗

SELECT l.relation::regclass AS tablename,
       CASE l.mode
          WHEN 'AccessShareLock' THEN 'select'
          WHEN 'AccessExclusiveLock' THEN 'altered'
          ELSE 'modified'
       END AS activity
FROM pg_locks AS l
   JOIN pg_database AS d
      ON l.database = d.oid
WHERE d.datname = current_database()
  AND l.relation IS NOT NULL
  AND pid <> pg_backend_pid();
选择l.relation::regclass作为表名,
案例l.模式
当选择“AccessShareLock”时,则选择“select”
当'AccessExclusiveLock'时,则为'Changed'
否则“修改”
以活动结束
从pg_锁为l
以d的身份加入pg_数据库
关于l.database=d.oid
其中d.datname=当前_数据库()
并且l.relation不为空
和pid pg_backend_pid();

谢谢!希望这个查询不会占用太多的计算资源,也不会中断基本活动,也不会在循环/循环中频繁使用时重载RDBMS来查找活动。