Postgresql 9.3.25 문서 | ||||
---|---|---|---|---|
토토 사이트 순위 : 문서 : 9.3 : 토토 사이트 순위 규칙 시스템 | PostgreSQL : 문서 : 9.3 : PostgreSQL Internals 스포츠 토토 사이트 | 46 장. 개요 Postgresql 내부의 | 젠 토토 : 문서 : 9.3 : 집행자 |
Planner/Optimizer최적의 실행 계획을 작성하십시오. 주어진 SQL 쿼리 (따라서, a 쿼리 트리)는 실제로 다양한 다른 곳에서 실행할 수 있습니다. 각각은 동일한 결과 세트를 생성합니다. 그렇다면 계산적으로 실현 가능하면 쿼리 옵티마이저는 각각을 검사합니다 이러한 가능한 실행 계획은 궁극적으로 실행을 선택합니다 가장 빨리 실행할 것으로 예상되는 계획.
참고 :어떤 상황에서는 가능한 각 방법을 검사합니다 쿼리를 실행할 수있는 것은 과도한 양의 시간과 기억 공간. 특히, 이것은 실행할 때 발생합니다 많은 수의 조인 작업과 관련된 쿼리. 하기 위해 합리적 (반드시 최적의) 쿼리 계획을 결정하십시오. 합리적인 시간,postgresqla 사용유전자 쿼리 최적화(참조PostgreSQL : 문서 : 9.3 : 유전자 사설 토토 사이트 옵티마이저) 언제 결합 횟수는 임계 값을 초과합니다 (참조geqo_threshold).
배트맨 토토의 검색 절차는 실제로 데이터와 함께 작동합니다 이라는 구조물Paths만 포함하는 계획의 컷 다운 표현 배트맨 토토로서의 정보는 결정을 내려야합니다. 후 가장 저렴한 경로가 결정되고 본격적으로계획 트리는 집행자에게 전달되도록 만들어졌습니다. 이것 원하는 실행 계획을 그것을 실행하는 집행자. 이 섹션의 나머지 부분에서는 우리는 무시할 것입니다 경로와 계획의 구별.
플래너/최적화기는 스캔 계획을 생성하는 것으로 시작합니다 각 개별 관계 (표). 가능 계획은 각 관계에서 사용 가능한 인덱스에 의해 결정됩니다. 항상 순차적 스캔을 수행 할 가능성이 있습니다. 관계, 순차적 스캔 계획이 항상 생성됩니다. an 인덱스는 관계 (예 : B-Tree Index)와 A에 정의됩니다. 쿼리는 제한을 포함합니다관계. Attribute opr 상수. 만약에relation.attribute의 키와 일치합니다 B- 트리 색인 및OPR중 하나입니다 인덱스에 나열된 연산자운영자 수업관계. 추가 인덱스가있는 경우 쿼리의 제한은 인덱스 키와 일치합니다. 추가 계획이 고려 될 것입니다. 인덱스 스캔 계획도 있습니다 일치 할 수있는 정렬 순서가있는 인덱스에 대해 생성 쿼리주문 by절 (있는 경우) 또는 a 합병 결합에 유용 할 수있는 정렬 순서 (참조) 아래에).
쿼리에 둘 이상의 관계에 가입 해야하는 경우. 모든 실행 가능한 계획이 끝난 후에 관계가 결합 된 관계가 고려됩니다. 단일 관계를 스캔하기 위해 발견되었습니다. 사용 가능한 세 가지 가입 전략은 다음과 같습니다.
중첩 루프 조인: 올바른 관계는입니다 좌측 관계에서 발견되는 모든 행에 대해 한 번 스캔합니다. 이것 전략은 구현하기 쉽지만 시간이 많이 걸릴 수 있습니다. (그러나 인덱스 스캔으로 올바른 관계를 스캔 할 수있는 경우 이것은 좋은 전략이 될 수 있습니다. 에서 값을 사용할 수 있습니다 왼쪽 관계의 현재 행은 인덱스 스캔을위한 키로 오른쪽.)
합병 조인: 각 관계가 정렬됩니다 가입이 시작되기 전에 Join 속성이 있습니다. 그런 다음 두 관계 병렬로 스캔되며 일치하는 행이 결합되어 형성됩니다. 행에 가입하십시오. 이런 종류의 가입은 각각이기 때문에 더 매력적입니다 관계는 한 번만 스캔해야합니다. 필요한 정렬이있을 수 있습니다 명시적인 정렬 단계 또는 스캔하여 달성 조인 키에서 색인을 사용하여 올바른 순서로의 관계.
해시 조인: 올바른 관계가 첫 번째입니다 조인 속성을 사용하여 해시 테이블에 스캔하고로드 해시 키. 다음으로 좌파 관계가 스캔되고 적절합니다 발견 된 모든 행의 값은 해시 키로 사용됩니다. 테이블의 일치 행.
쿼리에 두 가지 이상의 관계가 포함되면 최종 결과는 각각 2 개의 가입 단계로 구축해야합니다. 입력. 배트맨 토토는 다른 가능한 조인 시퀀스를 검사합니다 가장 저렴한 것을 찾으십시오.
쿼리가 더 적은 것을 사용하는 경우geqo_threshold관계, 가장 좋은 검색이 수행됩니다. 시퀀스에 가입하십시오. 배트맨 토토는 우선적으로 결합을 고려합니다 해당 조인 조항이있는 두 가지 관계 에서여기서자격 (즉, 어떤 제한과 같은어디서 rel1.attr1 = rel2.attr2존재). 조인 조항이없는 쌍에 가입하십시오 다른 선택이없는 경우에만 고려됩니다. 특정 관계는 다른 사람과의 조인 조인이 없습니다. 관계. 가능한 모든 계획은 모든 조인 쌍에 대해 생성됩니다 플래너에 의해 고려되고 (추정되는) 가장 저렴한 것이 선택됩니다.
언제geqo_threshold초과 고려 된 서열은 Heuristics에 의해 결정됩니다 설명PostgreSQL : 문서 : 9.3 : 유전자 사설 토토 사이트 옵티마이저. 그렇지 않으면 프로세스는 동일합니다.
완성 된 계획 트리는 순차적 또는 인덱스 스캔으로 구성됩니다. 기본 관계, 중첩 루프, 병합 또는 해시 조인 노드 필요하고 정렬 노드 또는 집계 기능 계산 노드. 이러한 계획 노드 유형의 대부분 할 수있는 추가 능력이 있습니다선택(충족하지 않는 줄 폐기 행 지정된 부울 조건) 및투영(파생 된 열 세트의 계산 주어진 열 값, 즉 스칼라 평가에 기초하여 필요한 경우 표현). 의 책임 중 하나 플래너는에서 선택 조건을 첨부하는 것입니다.여기서필수 출력의 조항 및 계산 플랜 트리의 가장 적절한 노드에 대한 표현.
이전 | 배트맨 토토 : 문서 : 9.3 : 배트맨 토토 9.3.25 문서화 | 젠 토토 : 문서 : 9.3 : 집행자 |
thePostgreSQL규칙 시스템 | PostgreSQL : 문서 : 9.3 : PostgreSQL Internals 스포츠 토토 사이트 | Executor |