【问题标题】:Query to find tables being busy at the moment in Postgresql database在 Postgresql 数据库中查询当前正忙的表
【发布时间】:2020-07-03 18:18:42
【问题描述】:

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

  • 查询时正在填充表
  • 查询时正在读取表

当然,查询活动本身应该从结果中排除,因为它是服务/工具/维护活动。

谢谢

【问题讨论】:

    标签: postgresql


    【解决方案1】:

    你在寻找这样的东西吗?

    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();
    

    【讨论】:

    • 谢谢!希望此查询不会占用太多计算资源或破坏基本活动或使 RDBMS 过载以找出活动,同时在循环/循环中非常频繁地使用。
    猜你喜欢
    • 2011-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-21
    • 1970-01-01
    • 1970-01-01
    • 2021-10-30
    • 1970-01-01
    相关资源
    最近更新 更多