pl/pgsql로 함수를 구성해서 사용하고 있습니다.
DB에 접속 후, pl/pgsql로 구성된 함수를 맨 처음 사용하면 응답이 느립니다.
그 후, 다시 그 함수를 사용하면 응답이 빠른 편입니다.
이러한 차이가 발생하는 이유가 무엇이고, 이를 고치기 위한 방안이 있는지
알 수 있을까요?
읽어주셔서 감사합니다.
plpgsql 함수들의 첫 실행이 느린 경우는 두가지 인데요.
하나는 plpgsql.so 파일을 첫 로드할때 걸리는 걸리는 시간이고,
이것은 환경설정에서 미리 불러오겠끔 지정하면 이 시간을 줄일 수 있습니다.
다음은 해당 함수에서 사용하는 퀴리를 처리하기 위한 자료량이 많아서
이것들을 공유버퍼로 보내는데 걸리는 시간입니다.
이것은 쿼리 튜닝을 시간을 줄여야할 것 같고요.
참 빠진게 세션별로 첫 실행 때 문자열로 된 함수 코드를 서버에서 사용할 수 있도록
캐시 작업하는 시간도 있겠네요.
이는 함수 코드 량이 엄청나게 많을 때나 차이가 날터이니 별로 신경을 안써도 될 것 같고요.
대부분 문제는 이둘 중 두 번째 경우입니다.
먼저 함수에서 사용하고 있는 쿼리도 같은 실행 속도 패턴을 보이는지부터 확인해 보는 것이
맞을 것 같습니다.