안녕하세요
프로그램 상에서 계산하던 것을 function으로 구현하려니 오히려 더 늦는데요
1) 프로그램 소스
- 해당 그룹의 인자값을 모두 읽어와 map형태로 저장
- 4000개 정도의 멤버를 돌아가며 map의 그룹의 키를 가진 인자를 가져와 계산
2) function 소스
For select member IN
For select member.group data
멤버의 변수와 그룹의 인자를 계산
LOOP
멤버의 속성과 계산된 데이터를 합성
LOOP
----------------------------------------------------------------------------
소스상에선 미리 데이터를 넣어놓아서인지 굉장히 빠르지만 (1초내외)
function에선 한 멤버가 들어올때 마다 그룹을 검색하는 쿼리가 더해져인지 굉장히 느립니다..(26초 정도)
이런 경우 어떤방법을 써서 성능을 높일수 있을까요?
hstore, 임시테이블을 알아보고 있는중인데
혹시 알고계신다면 조언 부탁드립니다.
|