天天看点

享一个plpgsql中一个语句不同写法对于性能严重影响的问题(目前还找不到函数到底是怎样个调用法)

最近在测试cpu的avx指令集时无意中发现一个因为语句写法不同,性能相差极大的问题

<b>一、定义两个测试函数</b>

上面两个函数的功能是一样的,只是付值方式不一样

<b>二、测试一下他们的执行时间</b>

相差3陪,真的不敢相信

#log_parser_stats = on

#log_planner_stats = on

#log_executor_stats = on

#log_statement_stats = on

通过打开上面几个参数,收集相关信息到log里面,发现v_md5:=md5(random()::text);也是分解成select md5(random()::text)执行,但为什么相差这么大,希望有了解plpgsql函数调用的同学给预解答

继续阅读