天天看點

享一個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函數調用的同學給預解答

繼續閱讀