以下是 Chinese bbs 阿弟哥总结的 plpgsql 的性能相关的帖子,非常有用,供日后参考:
-
直接函数调用跟select into付值性能差别
采用直接函数调用性能是select into的n倍以上,具体见
http://bbs.pgsqldb.com/client/post_show.php?zt_auto_bh=57522 -
plpgsql中case与if的性能对比
case的执行效率比if高出了10%有多,具体见
http://bbs.pgsqldb.com/client/post_show.php?zt_auto_bh=57606 -
plpgsql中采用exception,分步检查数据重复,合并执行性能测试
合并执行的综合性能是最佳的,实际生产环境中应该是重复机率不会很高的,整体来说提高个20%左右,具体见
http://bbs.pgsqldb.com/client/post_show.php?zt_auto_bh=57607 -
plpgsql函数提取数据付值不同方式的性能差别
直接在sql中付值明显的高出10%以上的性能,具体见
http://bbs.pgsqldb.com/client/post_show.php?zt_auto_bh=57608 -
plpgsql中采用perform 和 select执行函数或句子时的性能差别
如果执行结果是不需要返回值时则采用perform的性能会更好,大约有3%提升,具体见
http://bbs.pgsqldb.com/client/post_show.php?zt_auto_bh=57609 -
分享pg中数据类型的转换对性能的影响
类型的转换对于性能的影响大约是15%左右的性能开销,具体见
http://bbs.pgsqldb.com/client/post_show.php?zt_auto_bh=57610 -
在plpgsql中使用cursor和直接select的性能差别
我们可以看到同样的work_mem,采用cursor的话,order by 需要 temp read=32474 written=32472,而用select直接提取数据的话,temp read=16237 written=16236,少了一半,
所以性能提高明显,如果提高work_mem后,性能比较接近了一些,但还是select 直接提取数据来得好,具体见
http://bbs.pgsqldb.com/client/post_show.php?zt_auto_bh=57611 -
plpgsql中返回与不返回数据的性能差别
在自定义函数里,如果不需要返回值的话,则直接return void能获得30%性能提升
http://bbs.pgsqldb.com/client/post_show.php?zt_auto_bh=57612 -
plpgsql自定义函数常用返回数据类型测试
从测试的结果来看,数字形是integer跟boolean是一个筹级的,numeric次之,smallint,bigint比较差,float是最差的。字符类型相差不大,跟smallint,bigint差不多 ,具体见
http://bbs.pgsqldb.com/client/post_show.php?zt_auto_bh=57613 -
分享plpgsql返回明确和不明确的数据类型时性能差别
返回数据里要明确的告诉pg的解释器,否则性能将会降低30%,具体见
http://bbs.pgsqldb.com/client/post_show.php?zt_auto_bh=57614 -
plpgsql中CURRENT OF cur更新方式性能测试
CURRENT OF cur的性能只有明确的指定条件的1/4,方便使用了,但要付出性能的代价
http://bbs.pgsqldb.com/client/post_show.php?zt_auto_bh=57615
原创文章,作者:kirin,如若转载,请注明出处:https://blog.ytso.com/237955.html