이 명령은 실행 계획을 표시합니다.포스트그레SQL플래너가 다음을 생성합니다. 제공된 진술. 실행 계획은 테이블이 어떻게 실행되는지 보여줍니다. 명령문에서 참조하는 내용은 일반 순차 방식으로 검색됩니다. 스캔, 인덱스 스캔 등 - 여러 테이블이 참조되는 경우 필요한 것을 하나로 모으기 위해 어떤 조인 알고리즘이 사용될 것인가? 각 입력 테이블의 행입니다.
디스플레이의 가장 중요한 부분은 추정값입니다. 명령문 실행 비용. 이는 계획자가 어떻게 추측하는지에 대한 것입니다. 명령문을 실행하는 데 시간이 오래 걸립니다(디스크 단위로 측정됨). 페이지 가져오기). 실제로 두 개의 숫자가 표시됩니다: 시작 시간 첫 번째 행이 반환되기 전의 총 시간 모든 행을 반환합니다. 대부분의 쿼리에서 총 시간은 중요하지만 하위 쿼리와 같은 컨텍스트에서는존재함, 플래너는 가장 작은 것을 선택합니다. 최소 총 시간 대신 시작 시간(이후 어쨌든 실행자는 한 행을 얻은 후에 중지됩니다. 또한 만약 당신이 a로 반환할 행 수를 제한합니다.제한절, 기획자는 적절한 조치를 취합니다. 어떤 계획을 추정하기 위해 엔드포인트 비용 간 보간 정말 저렴해요.
그분석옵션으로 인해 계획된 문장이 아닌 실제로 실행되는 문장. 합계 각 계획 노드 내에서 소비된 경과 시간(밀리초) 및 실제로 반환된 총 행 수가 디스플레이. 이는 기획자의 계획 여부를 확인하는 데 유용합니다. 추정치가 현실에 가깝습니다.
중요:다음 진술을 명심하십시오 실제로 실행되는 경우분석이다 사용. 그래도토토 꽁 머니폐기하겠습니다 a선택그러겠다 반환하면 문의 다른 부작용이 다음과 같이 발생합니다. 평소. 이용을 원하시는 경우토토 꽁 머니하세요 분석에삽입, 업데이트, 삭제, 또는실행명령이 데이터에 영향을 주지 않도록 하는 명령문을 사용하세요. 이 접근 방식:
시작; 토토 꽁 머니 분석 ...; 롤백;
명령을 실행하고 실제 실행 시간을 보여주세요.
계획 트리의 전체 내부 표현을 표시합니다. 단순한 요약이 아니라. 일반적으로 이 옵션은 특수한 디버깅 목적에 유용합니다.상세출력은 예쁘게 인쇄되거나 아닙니다.의 설정에 따라 다릅니다.explain_pretty_print구성 매개변수.
모두선택, 삽입, 업데이트, 삭제, 실행또는선언실행 계획을 보고 싶은 성명입니다.
최적화기의 사용에 대한 문서는 희박합니다. 비용 정보토토 꽁 머니. 참조섹션 13.1더 많은 정보를 원하시면.
허용하기 위해토토 꽁 머니합리적으로 만들 수 있는 쿼리 플래너 쿼리를 최적화할 때 정보에 입각한 결정을 내리세요.분석기록하려면 명령문을 실행해야 합니다. 테이블 내의 데이터 분포에 대한 통계입니다. 만약에 이 작업을 수행하지 않았습니다(또는 통계적 분포가 테이블의 데이터가 지난번 이후로 크게 변경되었습니다.분석실행됨), 예상 비용 쿼리의 실제 속성과 일치하지 않을 가능성이 높습니다. 결과적으로 열등한 쿼리 계획이 선택될 수 있습니다.
이전토토 꽁 머니7.3, 계획은 a 형식으로 내보내졌습니다.공지사항메시지. 이제 쿼리 결과로 나타납니다(테이블 형식으로 지정됨). 단일 텍스트 열 포함).
단일 테이블에 간단한 쿼리에 대한 계획을 표시하려면정수열 및 10000개 행:
토토 꽁 머니 SELECT * FROM foo;
                       쿼리 계획
-------------------------------
 foo의 시퀀스 스캔(비용=0.00..155.00행=10000너비=4)
(1행)
  색인이 있고 색인 생성이 가능한 쿼리를 사용하는 경우어디조건,토토 꽁 머니다른 계획이 표시될 수 있습니다.
EXPLAIN SELECT * FROM foo WHERE i = 4;
                         쿼리 계획
------------------------------------
 foo에서 fi를 사용한 인덱스 스캔(비용=0.00..5.98행=1너비=4)
   지수 조건: (i = 4)
(2행)
  다음은 다음을 사용하는 쿼리에 대한 쿼리 계획의 예입니다. 집계 함수:
EXPLAIN SELECT sum(i) FROM foo WHERE i < 10;
                             쿼리 계획
--------------------------------------------------------
 집계(비용=23.93..23.93행=1너비=4)
   - foo에서 fi를 사용하여 인덱스 스캔(비용=0.00..23.92행=6너비=4)
         지수 조건: (i < 10)
(3행)
  다음은 사용 예입니다토토 꽁 머니하세요 실행준비된 실행 계획을 표시합니다. 쿼리:
PREPARE 쿼리(int, int) AS SELECT sum(bar) FROM 테스트
    ID  $1 AND ID < $2인 경우
    그룹별로 foo;
EXPLAIN ANALYZE EXECUTE 쿼리(100, 200);
                                                       쿼리 계획                                                        
-----------------------------------------------------------------------------------------------
 HashAggregate (비용=39.53..39.53 행=1 너비=8) (실제 시간=0.661..0.672 행=7 루프=1)
   - 테스트 시 test_pkey를 사용한 인덱스 스캔(비용=0.00..32.97행=1311너비=8)(실제 시간=0.050..0.395행=99루프=1)
         지수 조건: ((id  $1) AND (id < $2))
 총 런타임: 0.851ms
(4행)
  물론 여기에 표시된 구체적인 숫자는 다음에 따라 다릅니다. 관련된 테이블의 실제 내용. 또한 숫자 및 선택한 쿼리 전략도 다를 수 있습니다.토토 꽁 머니다음으로 인해 릴리스됨 플래너 개선. 게다가,분석명령은 무작위 샘플링을 사용하여 추정합니다. 데이터 통계; 따라서 비용 추정이 가능합니다. 새로 실행한 후 변경분석, 테이블의 실제 데이터 분포가 그렇지 않은 경우에도 변경되었습니다.