대형으로가입컴퓨팅을 쿼리합니다. 유전자 쿼리 최적화에 소비된 시간은 단순한 것 같습니다분수시간의포스트그레스루틴을 통해 메모리를 해제해야 함MemoryContextFree, 파일백엔드/utils/mmgr/mcxt.c. 디버깅 결과 루틴의 루프에 갇히다OrderedElemPop, 파일백엔드/utils/mmgr/oset.c. 같은 문제가 발생합니다 일반을 사용할 때 긴 쿼리가 있는 경우포스트그레스쿼리 최적화 알고리즘.
파일에백엔드/최적화/geqo/geqo_params.c, 루틴gimme_pool_size그리고gimme_number_세대, 우리는 두 가지 경쟁을 만족시키기 위해 매개변수 설정을 타협했습니다. 요구사항:
쿼리 계획의 최적화
컴퓨팅 시간
파일에백엔드/최적화/geqo/geqo_eval.c, 루틴geqo_joinrel_size, 현재 해킹 MAXINT 오버플로는포스트그레스정수 값rel-크기로그로 변환합니다. 수정 의상대in백엔드/노드/관계.h분명히 심각한 일이 있을 것입니다 전체에 영향을 미칩니다포스트그레스구현.
10개 이상의 관계가 관련되면 메모리 고갈이 발생할 수 있습니다. 쿼리에서. 파일에 있음백엔드/최적화/geqo/geqo_eval.c, 루틴gimme_tree재귀적으로 호출됩니다. 아마도 나는 올바르게 해제해야 할 것을 잊어버렸는데 무엇인지 모르겠습니다. 물론이다rel의 데이터 구조가입계속 성장하고 더욱 성장합니다 관계가 담겨있습니다. 제안을 환영합니다 :-(