이 명령은 실행 계획을 표시합니다.포스트그레SQL플래너가 다음을 생성합니다. 제공된 쿼리. 실행 계획은 테이블이 어떻게 실행되는지 보여줍니다. 쿼리에서 참조하는 내용은 일반 순차 방식으로 검색됩니다. 스캔, 인덱스 스캔 등---여러 테이블을 참조하는 경우 필요한 것을 하나로 모으기 위해 어떤 조인 알고리즘이 사용될 것인가? 각 입력 테이블의 튜플입니다.
디스플레이의 가장 중요한 부분은 예상 쿼리입니다 실행 비용(실행 비용)은 실행 기간이 얼마나 될지에 대한 기획자의 추측입니다. 쿼리를 실행하는 데 사용됩니다(디스크 페이지 가져오기 단위로 측정). 실제로 두 개의 숫자가 표시됩니다. 즉, 시작 전의 시작 시간입니다. 첫 번째 튜플을 반환할 수 있으며, 모든 튜플을 반환하는 데 걸리는 총 시간은 튜플. 대부분의 쿼리에서는 총 시간이 중요하지만 EXISTS 하위 쿼리와 같은 컨텍스트에서 플래너는 최소 총 시간 대신 최소 시작 시간(이후 어쨌든 실행자는 하나의 튜플을 얻은 후에 중지됩니다. 또한 만약에 LIMIT 절을 사용하여 반환할 튜플 수를 제한합니다. 플래너는 끝점 사이에 적절한 보간을 수행합니다. 어떤 요금제가 실제로 가장 저렴한지 추정하는 비용입니다.
ANALYZE 옵션은 쿼리가 실제로 실행되도록 하며, 계획된 것뿐만 아니라. 각 내에서 소비된 총 경과 시간 계획 노드(밀리초) 및 실제로 총 행 수 반환된 내용이 디스플레이에 추가됩니다. 보는 데 유용합니다. 기획자의 추정이 현실에 가까운지 여부.
VERBOSE 옵션은 다음의 전체 내부 표현을 내보냅니다. 단순한 요약이 아닌 계획 트리를 작성하고 이를 postmaster 로그 파일도 포함). 일반적으로 이 옵션은 다음 경우에만 유용합니다. 디버깅포스트그레SQL.
| 주의 |
|
쿼리는 실제로 다음과 같은 경우에 실행된다는 점을 명심하세요. ANALYZE가 사용됩니다. 그래도설명SELECT가 반환하는 모든 출력을 삭제합니다. 쿼리의 부작용은 평소와 같이 발생합니다. 당신이 사용하고 싶습니다분석 설명에 쿼리를 허용하지 않고 INSERT, UPDATE 또는 DELETE 쿼리 데이터에 영향을 미치려면 다음 접근 방식을 사용하세요. 시작; 설명 분석 ...; 롤백; |
테이블에 간단한 쿼리에 대한 쿼리 계획을 표시하려면 싱글int4열 및 128개 행:
선택 * FROM foo 설명;공지: 쿼리 계획: foo의 Seq 스캔(비용=0.00..2.28행=128너비=4) 설명하다
지원할 색인이 있는 동일한 테이블의 경우equijoin쿼리 조건설명다른 계획이 표시됩니다:
설명 선택 * FROM foo WHERE i = 4;공지: 쿼리 계획: foo에서 fi를 사용한 인덱스 스캔(비용=0.00..0.42행=1너비=4) 설명하다
그리고 마지막으로 색인이 있는 동일한 테이블에 대해equijoin쿼리 조건설명에 대해 다음을 표시합니다. 집계 함수를 사용하여 쿼리:
EXPLAIN SELECT sum(i) FROM foo WHERE i = 4;공지: 쿼리 계획: 집계(비용=0.42..0.42행=1너비=4) - foo에서 fi를 사용하여 인덱스 스캔(비용=0.00..0.42행=1너비=4)
특정 숫자가 표시되며 선택한 숫자도 표시됩니다. 쿼리 전략은 다양할 수 있습니다.사설 토토플래너로 인한 출시 개선되었습니다.