【问题标题】:PostgreSQL - dblink_exec statement_timeoutPostgreSQL - dblink_exec statement_timeout
【发布时间】:2020-07-07 17:34:00
【问题描述】:

我有一个在里面使用 dblink_exec 的函数。有时此执行需要很长时间,并且在某些情况下会产生死锁。 我知道我可以设置本地 lock_timeout 和本地 statement_timeout,但是当我在函数内执行此操作时,它不会对 dblink_exec 产生任何影响。

有没有办法在 dblink_connect 上设置这些参数?我知道我可以在 .conf 文件上设置这两个参数,但我想在本地(每个连接)执行此操作。

这可能吗?

谢谢!

胡里奥

【问题讨论】:

    标签: postgresql dblink


    【解决方案1】:

    这很丑,但是你可以在连接字符串中指定语句超时(要在远程端实现),使用options 构造。

    create or replace function dblink_timeout() returns int language plpgsql as $$ 
      declare xx int;  
    begin 
      select x into xx from 
        dblink(
          'dbname=jjanes options = ''-c statement_timeout=500 -c lock_timeout=100''',
          'select count(*) from pgbench_accounts'
        ) as (x int);
      return xx; 
    end 
    $$;
    

    【讨论】:

    • 非常感谢!但还有一件事:有没有办法在这个连接字符串中设置 lock_wait 参数?
    猜你喜欢
    • 2021-05-19
    • 1970-01-01
    • 2018-01-04
    • 1970-01-01
    • 2022-08-04
    • 2021-08-21
    • 2020-09-21
    • 2020-03-28
    • 2018-10-23
    相关资源
    最近更新 更多