2017-10-10 104 views
1

如果我更改了在另一个UDF中使用的用户定义函数(UDF),PostgreSQL会重建它们两者的执行计划还是仅针对更改的执行计划?PostgreSQL中函数的执行计划

+0

难道你不能试试这个,只看看使用'EXPLAIN'会发生什么? –

+0

是的,问题是关于缓存的问题,对于错误的措辞感到抱歉,我问了另一个问题,请看看这里:[PostgreSQL中PL/pgSQL函数的执行计划缓存](https://stackoverflow.com/questions/46698386/execution-plan-cache-for-pl-pgsql-functions-in-postgresql) –

回答

0

如果一个函数没有改变,所有查询的执行计划应该保持高速缓存。

因此,只有您更改的功能的执行计划才会重新计算。

您可以使用SQL语句DISCARD PLANS放弃所有缓存的计划。

+0

它取决于[Inlining_of_SQL_functions](https://wiki.postgresql.org/wiki/Inlining_of_SQL_functions)? –

+2

计划不针对SQL函数进行缓存,仅针对PL/pgSQL函数。 –

+0

它是LANGUAGE子句中指定的东西吗? –