2025 년 7 월 17 일 : | 윈 토토 : 윈 토토 18 베타 2
이 문서는 지원되지 않는 버전의 사설 토토을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다토토 : 문서 : 17 : 50.5. 플래너/최적화버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

40.5. 플래너/최적화

Planner/Optimizeris 최적의 실행 계획을 작성합니다. 주어진 SQL 쿼리 (및 따라서 쿼리 트리)는 실제로 다양한 종류로 실행될 수 있습니다. 서로 다른 방식으로, 각각은 동일한 세트를 생산할 것입니다. 결과. 계산적으로 실현 가능하면 쿼리 최적화기 이러한 가능한 실행 계획 각각을 조사합니다 실행될 것으로 예상되는 실행 계획을 선택 가장 빠른.

참고 :어떤 상황에서는 가능한 각 상황을 검사합니다 쿼리가 실행될 수있는 방법은 과도하게됩니다. 시간과 메모리 공간의 양. 특히, 이것은 발생합니다 많은 수의 조인과 관련된 쿼리를 실행할 때 운영. 합리적 (최적이 아닌)을 결정하기 위해 합리적인 시간에 쿼리 계획사설 토토a 사용Genetic Query Optimizer.

플래너의 검색 절차는 실제로 데이터와 함께 작동합니다 이라는 구조물Paths단순히 단순히 포함 된 계획의 표현을 단순히 삭감합니다 플래너로서의 정보는 결정을 내려야합니다. 후 가장 저렴한 경로가 결정되고 본격적으로계획 트리는 집행자에게 전달되도록 만들어졌습니다. 이것 원하는 실행 계획을 충분히 상세하게 나타냅니다 그것을 실행하는 집행자. 이 섹션의 나머지 부분에서는 우리는 무시할 것입니다 경로와 계획의 구별.

40.5.1. 가능한 계획 생성

플래너/최적화기는 계획을 생성하여 시작합니다 쿼리에 사용 된 각 개별 관계 (테이블)를 스캔합니다. 가능한 계획은 사용 가능한 인덱스에 의해 결정됩니다. 각 관계. 항상 수행 할 가능성이 있습니다 관계에 대한 순차적 스캔이므로 순차적 스캔 계획은 항상 만들어졌습니다. 인덱스가 관계에 정의되어 있다고 가정하십시오 (for 예제 B- 트리 색인) 및 쿼리에는 제한이 포함되어 있습니다relation.Attribute opr 상수. 만약에relation.attribute일치합니다 B-Tree 지수의 열쇠 및opris 인덱스에 나열된 연산자 중 하나운영자 클래스, 또 다른 계획이 사용됩니다 관계를 스캔하는 B- 트리 색인. 추가가있는 경우 존재하는 색인 및 쿼리 제한이 발생합니다. 인덱스의 키 일치 추가 계획이 고려됩니다.

싱글 스캔을위한 실현 가능한 계획이 발견되었습니다. 관계, 관계 가입 계획이 만들어집니다. 그만큼 Planner/Optimizer는 우선적으로 조인을 고려합니다 해당 조인 조항이있는 두 가지 관계 에서여기서자격 (즉,) 어떤 제한과 같은어디서 rel1.attr1 = rel2.attr2존재). 가입없이 쌍을 가입하십시오 조항은 다른 선택이 없을 때만 고려됩니다. IS, 특정 관계는 이용 가능한 조인 조항이 없습니다. 다른 관계. 가능한 모든 계획은 모든 조인에 대해 생성됩니다 플래너/최적화기가 고려한 쌍. 세 가지 가능 가입 전략은 다음과 같습니다.

  • 중첩 루프 조인: 오른쪽 왼쪽에있는 모든 행에 대해 관계가 한 번 스캔됩니다. 관계. 이 전략은 구현하기 쉽지만 가능합니다 매우 시간이 많이 걸립니다. (그러나 올바른 관계가있을 수 있다면 인덱스 스캔으로 스캔하면 좋은 전략이 될 수 있습니다. 그것 왼쪽의 현재 행에서 값을 사용할 수 있습니다. 오른쪽의 색인 스캔을위한 키로서의 관계.)

  • 통합 정렬 조인: 각 관계 조인이 시작되기 전에 조인 속성에 정렬됩니다. 그런 다음 두 관계가 병렬로 스캔됩니다 일치하는 행이 결합되어 결합 행을 형성합니다. 이런 종류 각 관계가 있어야하기 때문에 가입은 더 매력적입니다. 한 번만 스캔했습니다. 필요한 정렬이 달성 될 수 있습니다 명시적인 정렬 단계 또는 스캔하여 Join에서 인덱스를 사용하여 올바른 순서로의 관계 열쇠.

  • 해시 조인: 올바른 관계 먼저 스캔하고 해시 테이블에로드되어 사용합니다. 속성에 해시 키로 가입하십시오. 다음으로 좌익은입니다 스캔하고 발견 된 모든 행의 적절한 값은 일치 행을 찾기 위해 해시 키로 사용됩니다. 테이블.

쿼리에 두 가지 이상의 관계가 포함되면 최종 결과는 각각 2 개의 가입 단계로 구축해야합니다. 입력. 플래너는 다른 가능한 조인 시퀀스를 검사합니다 가장 저렴한 것을 찾으려면

완성 된 계획 트리는 순차적 또는 인덱스 스캔으로 구성됩니다. 기본 관계, 중첩 루프, 병합 또는 해시 조인 필요에 따른 노드와 정렬과 같은 보조 단계 노드 또는 집계 기능 계산 노드. 이들 대부분 계획 노드 유형은 추가 기능을 추가 할 수 있습니다선택(충족하지 않는 줄 폐기 행 지정된 부울 조건) 및투영(파생 된 열 세트의 계산 주어진 열 값, 즉 스칼라 평가에 기초하여 필요한 경우 표현). 의 책임 중 하나 플래너는에서 선택 조건을 첨부하는 것입니다.어디필수 출력의 조항 및 계산 플랜 트리의 가장 적절한 노드에 대한 표현.