時間:2024-02-24 17:17作者:下載吧人氣:29
一、概述:
PL/pgSQL函數(shù)在第一次被調(diào)用時,其函數(shù)內(nèi)的源代碼(文本)將被解析為二進制指令樹,但是函數(shù)內(nèi)的表達式和SQL命令只有在首次用到它們的時候,PL/pgSQL解釋器才會為其創(chuàng)建一個準備好的執(zhí)行規(guī)劃,隨后對該表達式或SQL命令的訪問都將使用該規(guī)劃。如果在一個條件語句中,有部分SQL命令或表達式?jīng)]有被用到,那么PL/pgSQL解釋器在本次調(diào)用中將不會為其準備執(zhí)行規(guī)劃,這樣的好處是可以有效地減少為PL/pgSQL函數(shù)里的語句生成分析和執(zhí)行規(guī)劃的總時間,然而缺點是某些表達式或SQL命令中的錯誤只有在其被執(zhí)行到的時候才能發(fā)現(xiàn)。
由于PL/pgSQL在函數(shù)里為一個命令制定了執(zhí)行計劃,那么在本次會話中該計劃將會被反復(fù)使用,這樣做往往可以得到更好的性能,但是如果你動態(tài)修改了相關(guān)的數(shù)據(jù)庫對象,那么就有可能產(chǎn)生問題,如:
網(wǎng)友評論