2025년 9월 25일:토토 커뮤니티 : 토토
이 문서는 지원되지 않는 윈 토토 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.토토 : 문서 : 17 : 50.5. 플래너/최적화버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

41.5. 플래너/옵티마이저

의 임무플래너/옵티마이저이다 최적의 실행 계획을 수립합니다. 특정 SQL 쿼리(및 따라서 쿼리 트리)는 실제로 다양한 방식으로 실행될 수 있습니다. 서로 다른 방식으로 각각 동일한 세트를 생성합니다. 결과. 계산적으로 가능한 경우 쿼리 최적화 프로그램은 가능한 각 실행 계획을 검토하고 궁극적으로 실행될 것으로 예상되는 실행 계획을 선택합니다. 가장 빠르다.

참고:어떤 상황에서는 가능한 각각의 쿼리가 실행되는 방식에 과도한 시간이 소요됩니다. 시간과 기억 공간의 양. 특히 이런 일이 발생한다 다수의 조인이 포함된 쿼리를 실행할 때 운영. 합리적인(최적은 아님) 결정을 위해 합리적인 시간 안에 쿼리 계획을 작성하세요.윈 토토사용유전자 쿼리 최적화 도구.

플래너의 검색 절차는 실제로 데이터와 함께 작동합니다. 호출된 구조체경로단지 그만큼만 포함된 계획을 축소하여 표현한 것입니다. 기획자가 결정을 내리는 데 필요한 정보입니다. 이후 가장 저렴한 경로가 결정됩니다. 본격적인계획 트리실행자에게 전달되도록 빌드되었습니다. 이 원하는 실행 계획을 충분히 자세하게 나타냅니다. 실행하는 실행자입니다. 이 섹션의 나머지 부분에서는 무시하겠습니다. 경로와 계획의 차이.

41.5.1. 가능한 계획 생성

플래너/최적화 프로그램은 다음에 대한 계획을 생성하는 것으로 시작합니다. 쿼리에 사용된 각 개별 관계(테이블)를 검색합니다. 가능한 계획은 사용 가능한 인덱스에 따라 결정됩니다. 각 관계. 항상 수행할 가능성이 있습니다. 관계에 대한 순차 스캔이므로 순차 스캔 계획은 다음과 같습니다. 항상 생성됩니다. 인덱스가 관계에 정의되어 있다고 가정합니다(예: 예를 들어 B-트리 인덱스) 및 쿼리에는 제한 사항이 포함되어 있습니다.relation.attribute OPR 상수. 만일관계.속성일치합니다 B-트리 인덱스의 키와OPR이다 인덱스에 나열된 연산자 중 하나연산자 클래스, 다음을 사용하여 다른 계획이 생성됩니다. 관계를 스캔하기 위한 B-트리 인덱스. 추가로 있는 경우 인덱스가 존재하고 쿼리의 제한 사항이 발생합니다. 인덱스의 키와 일치하면 추가 계획이 고려됩니다.

단일 스캔을 위한 모든 실행 가능한 계획을 찾은 후 관계, 관계 결합 계획이 생성됩니다. 는 플래너/옵티마이저는 모든 요소 간의 조인을 우선적으로 고려합니다. 해당 조인 절이 있는 두 관계 에서어디자격(예: 다음과 같은 제한사항이 있습니다.어디에서 rel1.attr1=rel2.attr2존재합니다). 조인 없이 쌍으로 조인 조항은 다른 선택의 여지가 없는 경우에만 고려됩니다. 즉, 특정 관계에는 어떤 조인 절도 사용할 수 없습니다. 다른 관계. 모든 조인에 대해 가능한 모든 계획이 생성됩니다. 플래너/옵티마이저가 고려한 쌍입니다. 세 가지가 가능하다 조인 전략은 다음과 같습니다.

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

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

  • 해시 조인: 올바른 관계 먼저 스캔되어 해시 테이블에 로드됩니다. 속성을 해시 키로 조인합니다. 다음으로 왼쪽 관계는 스캔되었으며 발견된 모든 행의 적절한 값은 다음과 같습니다. 일치하는 행을 찾기 위해 해시 키로 사용됩니다. 테이블.

질의에 2개 이상의 관계가 포함된 경우 최종 결과는 각각 두 개의 조인 단계로 이루어진 조인 단계 트리로 구성되어야 합니다. 입력. 플래너는 가능한 다양한 조인 순서를 검사합니다. 가장 저렴한 것을 찾으세요.

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