如果调用 PQfinish,调用 PQcancel 有什么好处吗?
If calling PQfinish, is there any benefit of calling PQcancel?
如果事先调用PQFinish, which "closes the connection to the server", is there any benefit to calling PQCancel?
即如果连接关闭,PostgreSQL 服务器是否会取消此连接上任何正在进行的查询,就像使用 PQCancel 一样?
我已经通过 SELECT pg_sleep(120)
查询对此进行了测试。即使在调用 PQFinish 之后,通过 psql 和 运行
连接
SELECT pid, age(clock_timestamp(), query_start), usename, query
FROM pg_stat_activity
WHERE query != '<IDLE>' AND query NOT ILIKE '%pg_stat_activity%'
ORDER BY query_start desc
仍然显示查询为 运行。
所以我认为 运行 PQCancel
有一个好处 - 它会增加查询被取消的机会并减少服务器上的资源使用。
如果事先调用PQFinish, which "closes the connection to the server", is there any benefit to calling PQCancel?
即如果连接关闭,PostgreSQL 服务器是否会取消此连接上任何正在进行的查询,就像使用 PQCancel 一样?
我已经通过 SELECT pg_sleep(120)
查询对此进行了测试。即使在调用 PQFinish 之后,通过 psql 和 运行
SELECT pid, age(clock_timestamp(), query_start), usename, query
FROM pg_stat_activity
WHERE query != '<IDLE>' AND query NOT ILIKE '%pg_stat_activity%'
ORDER BY query_start desc
仍然显示查询为 运行。
所以我认为 运行 PQCancel
有一个好处 - 它会增加查询被取消的机会并减少服务器上的资源使用。