저자:이 장은 원래 일부로 나타났습니다. 의향상된 배트맨 토토의 ANSI SQL 구현, 스테판 심코빅스' 비엔나 공과대학교에서 준비한 석사 논문 O.Univ.Prof.Dr의 지시에 따라. 게오르그 고틀로브(Georg Gottlob)와 Univ.Ass. 잡지. 카트린 세이르.
이 장에서는 내부 구조에 대한 개요를 제공합니다. 백엔드배트맨 토토. 이후 다음 섹션을 읽고 나면 어떻게 해야 하는지 알 수 있을 것입니다. 쿼리가 처리됩니다. 여기서 자세한 설명을 기대하지 마세요(저는 모든 데이터 구조를 다루는 설명을 생각해 보세요. 내에서 사용되는 함수포스트그레SQL1000페이지를 초과합니다!). 이 장의 목적은 다음과 같습니다. 일반적인 제어 및 데이터 흐름을 이해합니다. 백엔드에서 쿼리 수신부터 결과 전송까지.
여기서 쿼리가 수행해야 하는 단계에 대한 간략한 개요를 제공합니다. 결과를 얻으려면 통과하세요.
응용 프로그램에서 다음으로의 연결포스트그레SQL서버는 다음을 수행해야 합니다. 확립되다. 응용 프로그램이 쿼리를 전송합니다. 서버로 전송된 결과를 수신합니다. 서버.
그파서 단계확인합니다 응용 프로그램(클라이언트)이 전송한 쿼리 올바른 구문을 생성하고질의 나무.
그시스템 재작성다음을 취합니다 파서 단계에서 생성된 쿼리 트리를 찾아 모든 항목을 찾습니다.규칙(다음에 저장됨시스템 카탈로그)에 적용하려면쿼리트리그리고 다음을 수행합니다. 에 주어진 변환규칙 시체. 다시 쓰기 시스템의 한 가지 응용 프로그램은 다음과 같습니다. 의 실현에 주어진조회수.
뷰(예: a가상 테이블)이 만들어지고 다시 작성됩니다. 시스템은 사용자의 쿼리를 액세스하는 쿼리로 다시 작성합니다.기본 테이블다음에 제공됨정의 보기대신.
그플래너/옵티마이저걸림 (다시 작성된) 쿼리 트리를 생성하고쿼리계획이것이 입력이 될 것입니다집행자.
먼저 가능한 모든 것을 창조함으로써 그렇게 합니다경로동일한 결과로 이어집니다. 에 대한 예를 들어 스캔할 관계에 대한 색인이 있는 경우 스캔에는 두 가지 경로가 있습니다. 한 가지 가능성은 간단한 순차 스캔과 다른 가능성은 다음과 같습니다. 인덱스를 사용하세요. 다음으로 각 실행 비용 요금제를 추정하고 가장 저렴한 요금제를 선택하고 돌려줬어요.
실행자는 재귀적으로 다음 단계를 수행합니다.계획 트리그리고 도중에 튜플을 검색합니다. 계획으로 표현됩니다. 실행자는 다음을 사용합니다.스토리지 시스템스캔하는 동안 관계, 수행정렬그리고조인, 평가자격그리고 마침내 튜플이 파생되었습니다.
다음 섹션에서는 위의 모든 내용을 다룰 것입니다 더 나은 이해를 돕기 위해 항목을 더 자세히 설명합니다.배트맨 토토의 내부 통제 및 데이터 구조.