最近在測試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函數調用的同學給預解答