使用函数时的 psqlodbc 性能问题

问题描述

我使用 psqlODBC 和 PowerQuery 将结果从 postgresql (12.4) 加载到 Microsoft Excel。用户(使用 Excel)想要了解数据,例如特定客户。输入客户编号并刷新工作簿后,PowerQuery 使用数据库上定义的函数编写 sql 语句,例如:

SELECT * FROM function(<parameter>);

我将它用于大约 100 个函数,但最近我遇到了其中一些函数的严重性能问题。某些函数需要永远(意味着 15 分钟或更长时间)才能将任何内容返回到 excel,即使它只有几百行。在 pgAdmin 中运行相同的功能通常需要

当运行服务器上函数中使用的相同 sql 语句时(通过粘贴到 PowerQuery),结果加载速度非常快。很遗憾,我无法在生产中使用此解决方法

到目前为止我尝试过的:

  1. 修改 psqlODBC config 的参数。到目前为止没有成功。
  2. 在 postgres 中更改函数参数没有成功。

我的想法:

  1. 我发现这个 answer 说明聚合可能是在客户端完成的。这真的很糟糕,因为这些表包含几百万行,而我只想将聚合的列发回。
  2. 我可以从使用函数转向使用视图,因为它们可能更适合查询规划器进行优化,并且使用视图而不是函数的第一次测试似乎可以解决问题。我可以对大多数函数执行此操作,因为它们中的大多数不包含视图无法覆盖的逻辑。

我很感谢这里的每一条建议,我可以如何解决我的问题。

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)