事务隔离级别在PG中列为长期查询

时间:2018-04-23 07:30:10

标签: postgresql sequelize.js

正如您可以看到以下screencap

screen shot 2018-04-11 at 10 41 26

pghero将那些SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;视为长期请求。

我对pg世界相当陌生,所以我不知道这是不是应该是这种情况,或者只是pghero将这些视为长寿请求当他们不应该。

对不起,如果问题不是很明显,但基本上是: - 这是pghero2中的错误吗? - Sequelize(我使用的nodejs ORM)在设置这些配置而不释放它们时做错了吗?

1 个答案:

答案 0 :(得分:1)

这不是一个错误;输出是正确的。

请注意,会话不会报告为“有效”,而是“在交易中空闲”。

这是正确的,因为在会话中运行的最后一个命令是

SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;

将开始交易。

如果这只是一个测试系统,那没问题,但在生产系统上,你不应该让交易在更长的时间内保持开放状态。它可能导致阻塞并发会话,并使autovacuum不会执行ts作业。

使用COMMIT或ROLLBACK`关闭交易。