저자 :이 장은 원래의 일부로 나타났습니다Simkovics, 1998, 스테판 Simkovics의 석사 논문은 비엔나 대학교에서 준비했습니다 O.Univ.prof.dr.의 지시에 따른 기술 Georg Gottlob 그리고 Univ.ass. 잡지. 카트린 세르.
이 장에서는 내부 구조에 대한 개요를 제공합니다. 백엔드Postgres. 후에 다음 섹션 읽기 쿼리 방법에 대한 아이디어가 있어야합니다. 처리됩니다. 여기에 자세한 설명을 기대하지 마십시오 (생각합니다 모든 데이터 구조 및 기능을 다루는 이러한 설명 사용Postgres초과 1000 페이지!). 이 장은 이해를 돕기위한 것입니다 백엔드 내에서 일반 제어 및 데이터가 결과 전송에 대한 쿼리.
여기서 우리는 쿼리가 통과 해야하는 단계에 대한 짧은 개요를 제공합니다. 결과를 얻기 위해.
응용 프로그램 프로그램에서 연결Postgres서버가 있어야합니다 확립된. 응용 프로그램 프로그램은 쿼리를 전달합니다 서버 및 서버에서 다시 전송 된 결과를 수신합니다.
theParser Stage쿼리를 확인합니다 응용 프로그램 프로그램 (클라이언트)에 의해 올바르게 전송됩니다 구문 및 a 생성쿼리 트리.
the시스템 재 작성파서 스테이지에서 생성 된 쿼리 트리는규칙( 저장된시스템 카탈로그) 신청하려면Querytree그리고 변환을 수행합니다 에 주어진규칙 기관. 하나 재 작성 시스템의 적용은 실현에 나와 있습니다. 의보기.
보기에 대한 쿼리가있을 때마다 (예 : a가상 테이블) 다시 작성 시스템입니다 사용자의 쿼리를 쿼리로 다시 작성합니다.기본 테이블주어진정의보기대신.
thePlanner/Optimizer(다시 작성) querytree 및 a 생성QueryPlan그것은에 대한 입력이 될 것입니다executor.
먼저 가능한 모든 가능한 모든 생성Paths동일한 결과로 이어집니다. 예를 들어 스캔 할 관계에 인덱스가있는 경우 스캔을위한 두 가지 경로. 한 가지 가능성은 간단합니다 순차적 스캔과 다른 가능성은 색인. 다음으로 각 계획의 실행 비용은 다음과 같습니다. 추정 및 가장 저렴한 계획이 선택되고 전달됩니다 뒤쪽에.
집행자는 재귀 적으로 recursily계획 트리튜플을 검색합니다 계획에 의해 대표됩니다. 집행자는를 사용합니다.스토리지 시스템스캔하는 동안 관계, 수행정렬and조인, 평가자격그리고 마침내 뒤로 물러납니다 유래 된 튜플.
다음 섹션에서는 위의 모든 것을 다룰 것입니다. 더 나은 이해를 위해 더 자세히 나열된 항목Postgres의 내부 통제 및 데이터 구조.