59.1. 복잡한 최적화 문제로서의 쿼리 처리

모든 관계 연산자 중에서 처리하고 최적화하기 가장 어려운 것은 다음과 같습니다.가입. 가능한 쿼리 계획의 수는 쿼리의 조인 수에 따라 기하급수적으로 늘어납니다. 다양한 지원으로 인해 추가적인 최적화 노력이 이루어졌습니다.조인 방법(예: 중첩 루프, 해시 조인, 병합 조인PostgreSQL) 개별 조인 및 다양한 처리색인(예: B-트리, 해시, GiST 및 GINPostgreSQL)을 관계에 대한 액세스 경로로 사용합니다.

보통PostgreSQL쿼리 최적화 프로그램은 다음을 수행합니다.거의 완전한 검색대체 전략의 공간을 넘나듭니다. IBM의 System R 데이터베이스에 처음 도입된 이 알고리즘은 거의 최적의 조인 순서를 생성하지만 토토의 조인 수가 커지면 엄청난 시간과 메모리 공간을 차지할 수 있습니다. 이것이 평범함을 만든다포스트그레SQL토토 최적화 프로그램은 다수의 테이블을 조인하는 토토에 적합하지 않습니다.

독일 프라이베르크에 있는 광업 기술 대학의 자동 제어 연구소는 사용하려고 할 때 몇 가지 문제에 직면했습니다.포스트그레SQL전력망 유지 관리를 위한 의사 결정 지원 지식 기반 시스템의 백엔드입니다. DBMS는 지식 기반 시스템의 추론 기계에 대한 대규모 조인 쿼리를 처리해야 했습니다. 이러한 쿼리의 조인 수로 인해 일반 쿼리 최적화 프로그램을 사용할 수 없습니다.

다음에서 우리는 a의 구현을 설명합니다.유전 알고리즘많은 수의 조인과 관련된 토토에 효율적인 방식으로 조인 순서 문제를 해결합니다.

수정사항 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.