如何从 Java 中的运行查询中获取 postgres 模式

问题描述

假设您对 pg_stat_activity 表进行查询并得到示例结果:

日期 数据名 pid usesysid 用户名 application_name client_addr client_hostname client_port backend_start xact_start query_start state_change wait_event_type wait_event 状态 backend_xid backend_xmin 查询 后端类型
7198 10 rdsadmin
7195
16384 rdsadmin 32375 10 rdsadmin Postgresql JDBC 驱动程序
16409 c-t-s 21143 16410 c-t-s c-t-s 10.10.3.1 48037 2021-01-18 13:19:03 2021-01-18 13:31:23 2021-01-18 13:31:23 客户 客户端读取 空闲 提交 客户端后端

我想知道查询 COMMIT 是在哪个架构上执行的?

我的情况是我有基于模式的多租户,我想区分模式(租户)。我们总是进行单一模式查询,所以我们不会混合它们。为了实现这一点,我们在每个 search_path 方法调用上设置 getConnection代码是用 Java 开发的,我们不在查询中使用架构名称,因为它始终是动态的——取自当前请求上下文并在 getConnection 方法中设置。

根据目前的结果,我不知道哪个租户(架构)导致慢/长查询

我试图通过从 pg_stat_activity 中获取的 id 从 pg_class 中进行选择,但没有运气。

到目前为止评论没有回答我的问题,这可能吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)