2017-10-10 1 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

PL/pgSQL 함수의 경우에만 SQL 함수에 대한 계획이 캐시되지 않습니다. –

+0

LANGUAGE 절에 지정된 내용입니까? –