我做了一些基本的搜索,但找不到答案。

我想知道“分析”是否是一个畅通无阻的声明。我的意思是“解除阻塞”是语句返回,但分析仍在后端运行。

我问的原因是我已经看到代码(JAVA,使用 jdbc)发出:

statement.executeUpdate("analyze " + tableName + ";")

然后在pg_lock上查询,postgresql"/>

首页 > 解决方案 > 在 postgres 中,“分析”是非阻塞语句吗?

我做了一些基本的搜索,但找不到答案。

我想知道“分析”是否是一个畅通无阻的声明。我的意思是“解除阻塞”是语句返回,但分析仍在后端运行。

我问的原因是我已经看到代码(JAVA,使用 jdbc)发出:

statement.executeUpdate("analyze " + tableName + ";")

然后在pg_lock上查询

问题描述

我做了一些基本的搜索,但找不到答案。

我想知道“分析”是否是一个畅通无阻的声明。我的意思是“解除阻塞”是语句返回,但分析仍在后端运行。

我问的原因是我已经看到代码(JAVA,使用 jdbc)发出:

statement.executeUpdate("analyze " + tableName + ";")

然后在pg_lock上查询表是否有ShareUpdateExclusiveLock,只有当表没有锁时,代码才继续。

所以分析是畅通的?


不,在统计数据计算完成之前,该ANALYZE语句不会返回。我不知道 PostgreSQL 中的任何 SQL 语句可以像您描述的那样异步工作。

您阅读的代码似乎被误导了;也许货物崇拜编程。

标签: postgresql

解决方案


不,在统计数据计算完成之前,该ANALYZE语句不会返回。我不知道 PostgreSQL 中的任何 SQL 语句可以像您描述的那样异步工作。

您阅读的代码似乎被误导了;也许货物崇拜编程。


推荐阅读