为什么我不能在 Dapper 中覆盖 statement_timeout?
Why can't I override statement_timeout in Dapper?
我像这样全局设置了 postgresql 语句超时:
ALTER ROLE user SET statement_timeout = '10s';
当我有一个很长的 运行 查询时,我可以像这样覆盖超时,它在我的数据库中工作正常 IDE:
SET statement_timeout TO '0';
SELECT pg_sleep(20);
但是当我从 Dapper 执行同样的事情时它抛出异常:
57014: canceling statement due to statement timeout
如何让它在 Dapper 中工作?
statement_timeout
设置仅从通过网络发送的下一条语句开始生效。我的 IDE 一条一条地发送多个语句,而 Dapper 一次往返发送它们。所以为了解决这个问题,我不得不把它分成 2 个 Execute
调用:
c.Execute("SET statement_timeout TO '0';");
c.Execute("SELECT pg_sleep(20);");
顺便说一下,SET
应用于会话,而 SET LOCAL
应用于事务。
我像这样全局设置了 postgresql 语句超时:
ALTER ROLE user SET statement_timeout = '10s';
当我有一个很长的 运行 查询时,我可以像这样覆盖超时,它在我的数据库中工作正常 IDE:
SET statement_timeout TO '0';
SELECT pg_sleep(20);
但是当我从 Dapper 执行同样的事情时它抛出异常:
57014: canceling statement due to statement timeout
如何让它在 Dapper 中工作?
statement_timeout
设置仅从通过网络发送的下一条语句开始生效。我的 IDE 一条一条地发送多个语句,而 Dapper 一次往返发送它们。所以为了解决这个问题,我不得不把它分成 2 个 Execute
调用:
c.Execute("SET statement_timeout TO '0';");
c.Execute("SELECT pg_sleep(20);");
顺便说一下,SET
应用于会话,而 SET LOCAL
应用于事务。