Yog*_*ati 10 postgresql postgresql-9.2
我在生产中使用 PostgreSQL 服务器。
当我发起一个查询时
select * from pg_stat_activity
Run Code Online (Sandbox Code Playgroud)
在我的服务器上,我收到了 98% 的查询,例如
SHOW TRANSACTION ISOLATION LEVEL
Run Code Online (Sandbox Code Playgroud)
我的服务器只接受 100 个连接,所以我无法继续进行。
为什么会这样?如何阻止所有这些查询?
如果他们在那里;它们就在那里,但它们并不是神奇地凭空出现。虽然我希望您能回来告诉我们您的情况,但这通常是两件事之一,
\n有时这些人会连接并启动空交易,或准备交易。这总是由糟糕的库造成的。如果库是新的或者是数据库新的,这是情有可原的。如果图书馆已有多年历史并这样做,我怀疑他们没有太多的目光关注它并寻找替代方案。
\n从评论来看,
\n\n\nPostgres 不会自己创建连接。您的应用程序创建这些连接并运行这些查询。可能是连接池或类似的东西。\xe2\x80\x93 a_horse_with_no_name 2013 年 9 月 10 日 9:03
\n您正在运行 Java 应用程序吗?使用 HikariCP,或者其他连接池选项?我正在使用 HikariCP,当我登录 psql 并从 pg_stat_activity 进行选择查询时看到类似的事情;...我也想知道为什么会发生这种情况;我的猜测是这是 HikariCP 保持连接“新鲜”的一种机制。\xe2\x80\x93 克里斯·W. Jan 16 \'16 at 19:22
\n
虽然这有可能是尝试保持连接“新鲜”,但这样做的正确方法是这样的
\nresult = PQexec(imp_dbh->conn, "/* DBD::Pg ping test v3.6.0 */");\n
Run Code Online (Sandbox Code Playgroud)\n您可能需要提交错误报告以改用该方法。
\n