postgresql select查询一个函数时需要注意的调用次数问题。

postgresql select查询一个函数时需要注意的调用次数问题。,第1张

概述原文在此: http://www.cybertec.at/func-hidden-performance-issues/ 在pg9.6中做以下测试 CREATE TYPE mytype AS (a int ,b int);CREATE OR REPLACE FUNCTION ft_2()RETURNS setof mytypeAS$$BEGIN RAISE NOTICE 'kkk

原文在此: http://www.cybertec.at/func-hidden-performance-issues/

在pg9.6中做以下测试

CREATE TYPE mytype AS  (a int,b int);CREATE OR REPLACE FUNCTION ft_2()RETURNS setof mytypeAS$$BEGIN  RAISE NOTICE 'kkk';  RETURN next (1,3);  RETURN next (2,4);  RETURN next (4,6);  EXECUTE 'SELECT pg_sleep(3)';  RETURN;END;$$LANGUAGE plpgsql;

select * from ft_2();会发现函数只执行了一次,raise 的 kkk 字符串只出现一次。

select (ft_2()).* 则会出现2次kkk提示,因为组合类型有两个字段。

但是这一行为在 pg10开发版中不存在。

因此,如果你使用的是后一种语法,则可能会出现性能问题。

总结

以上是内存溢出为你收集整理的postgresql select查询一个函数时需要注意的调用次数问题。全部内容,希望文章能够帮你解决postgresql select查询一个函数时需要注意的调用次数问题。所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1173240.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存