이 문서는 지원되지 않는 토토 커뮤니티 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.와이즈 토토 : 문서 : 17 : 와이즈 토토버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

토토 커뮤니티

이름

EXPLAIN -- 실행 계획을 보여줍니다. 진술

시놉시스

토토 커뮤니티 [ (옵션 [, ...] ) ] 성명토토 커뮤니티 [ 분석 ] [ 자세한 토토 커뮤니티 ]성명

어디에서옵션다음 중 하나일 수 있습니다.분석 [부울]
    자세한 내용 [부울]
    비용 [부울]
    버퍼 [부울]
    타이밍 [부울]
    형식  텍스트 | XML | JSON | YAML

토토 커뮤니티

이 명령은 실행 계획을 표시합니다.포스트그레SQL플래너가 다음을 생성합니다. 제공된 진술. 실행 계획은 테이블이 어떻게 실행되는지 보여줍니다. 명령문에서 참조하는 내용은 일반 순차 방식으로 검색됩니다. 스캔, 인덱스 스캔 등 - 여러 테이블이 참조되는 경우 필요한 것을 하나로 모으기 위해 어떤 조인 알고리즘이 사용될 것인가? 각 입력 테이블의 행입니다.

디스플레이의 가장 중요한 부분은 추정값입니다. 명령문 실행 비용. 이는 계획자가 어떻게 추측하는지에 대한 것입니다. 명령문을 실행하는 데 시간이 오래 걸립니다(비용 단위로 측정됨). 이는 임의적이지만 일반적으로 디스크 페이지 가져오기를 의미합니다. 실제로 두 개의 숫자가 표시됩니다. 즉, 시작 전 초기 비용입니다. 첫 번째 행이 반환될 수 있으며 모든 행을 반환하는 데 드는 총 비용은 행. 대부분의 쿼리에서는 총 비용이 중요하지만 하위 쿼리와 같은 컨텍스트존재함, 플래너는 가장 작은 시작 비용 대신에 가장 작은 시작 비용을 선택합니다. 최소 총 비용(Executor는 다음을 얻은 후 중지되므로) 어쨌든 한 행). 또한 반환할 행 수를 제한하는 경우 와 함께제한절, 기획자가 만듭니다. 엔드포인트 비용 간의 적절한 보간 어떤 계획이 실제로 가장 저렴한지 추정해 보세요.

분석옵션으로 인해 계획된 문장이 아닌 실제로 실행되는 문장. 그러면 실제 총계를 포함하여 런타임 통계가 디스플레이에 추가됩니다. 각 계획 노드 내에서 소비된 경과 시간(밀리초) 및 실제로 반환된 총 행 수입니다. 이는 다음과 같은 경우에 유용합니다. 기획자의 추정이 현실에 가까운지 확인합니다.

중요:다음 진술을 명심하십시오 실제로 실행되는 경우는 다음과 같습니다.분석옵션이 사용됩니다. 그래도토토 커뮤니티a의 모든 출력을 삭제합니다.선택반환하면 다음의 다른 부작용이 발생합니다. 성명은 평소대로 진행됩니다. 이용을 원하시는 경우분석 토토 커뮤니티삽입, 업데이트, 삭제, 만들기 표는 다음과 같습니다또는실행문장 명령이 데이터에 영향을 주지 않고 이것을 사용하십시오. 접근 방식:

시작;
토토 커뮤니티 분석 ...;
롤백;

오직분석그리고상세옵션을 지정할 수 있으며 해당 옵션에서만 옵션 목록을 괄호로 묶지 않고 순서대로 정렬합니다. 이전 에토토 커뮤니티9.0, 괄호가 없는 구문만 지원됩니다. 예상된다 모든 새로운 옵션은 괄호 안에만 지원됩니다. 구문.

매개변수

분석

명령을 실행하고 실제 실행 시간과 다른 통계. 이 매개변수의 기본값은거짓.

상세

계획에 관한 추가 정보를 표시합니다. 구체적으로 각 노드에 대한 출력 열 목록을 포함합니다. 계획 트리에서 스키마 한정 테이블 및 함수 이름, 항상 범위를 사용하여 표현식의 변수에 레이블을 지정합니다. 테이블 별칭을 사용하고 항상 각 트리거의 이름을 인쇄합니다. 어떤 통계가 표시되는지. 이 매개변수의 기본값은거짓.

비용

예상 시작 및 합계에 대한 정보 포함 각 계획 노드의 비용 및 예상 노드 수 행과 각 행의 예상 너비. 이 매개변수 기본값은.

버퍼

버퍼 사용량에 대한 정보를 포함합니다. 구체적으로, 적중, 읽기, 더럽혀진 공유 블록의 수를 포함합니다. 쓰기, 적중, 읽기, 더럽혀진 로컬 블록의 수 쓰여지고, 읽고 쓰여진 임시 블록의 수입니다. 갑히트즉, 블록이 이미 발견되었기 때문에 읽기가 방지되었습니다. 필요할 때 캐시합니다. 공유 블록에는 일반 블록의 데이터가 포함됩니다. 테이블과 인덱스; 로컬 블록에는 다음의 데이터가 포함됩니다. 임시 테이블 및 인덱스; 임시 블록에는 다음이 포함되어 있습니다. 정렬, 해시, Materialise에 사용되는 단기 작업 데이터 계획 노드 및 유사한 경우. 블록 수더러워진표시 이전에 수정되지 않은 블록의 수 이 쿼리로 변경되었습니다. 블록 수작성표시 캐시에서 제거된 이전에 더티된 블록의 수 쿼리 처리 중에 이 백엔드에 의해. 수 상위 레벨 노드에 대해 표시된 블록에는 다음에서 사용되는 블록이 포함됩니다. 모든 하위 노드. 텍스트 형식에서는 0이 아닌 값만 인쇄됩니다. 이 매개변수는 다음과 같은 경우에만 사용할 수 있습니다.분석또한 활성화되어 있습니다. 그것 기본값은거짓.

타이밍

실제 시작 시간과 소요된 시간을 포함합니다. 출력의 노드. 반복적으로 읽어야 하는 오버헤드 시스템 시계는 일부 쿼리에서 쿼리 속도를 크게 저하시킬 수 있습니다. 시스템이므로 이 매개변수를 다음으로 설정하는 것이 유용할 수 있습니다.거짓실제 행만 계산하는 경우, 정확한 시간은 아니지만 필요합니다. 이 매개변수는 때 사용됨분석또한 활성화되어 있습니다. 기본값은.

형식

TEXT, XML, JSON, 또는 YAML. 텍스트가 아닌 출력에는 다음과 동일한 정보가 포함됩니다. 텍스트 출력 형식이지만 프로그램에서는 더 쉽습니다. 분석하다. 이 매개변수의 기본값은텍스트.

부울

선택한 옵션을 켜야 하는지 여부를 지정합니다 켜기 또는 끄기. 쓸 수 있습니다, 켜짐, 또는1옵션을 활성화하고거짓, 꺼짐, 또는0비활성화합니다.부울값을 생략할 수도 있습니다. 이 경우가정됩니다.

성명

모두선택, 삽입, 업데이트, 삭제, , 실행, 선언또는다음으로 테이블 생성문, 그 실행 보고 싶은 계획을 세우세요.

출력

명령의 결과는 계획에 대한 텍스트 토토 커뮤니티입니다. 에 선택됨성명, 선택적으로 실행 통계로 주석이 추가됩니다.섹션 14.1정보를 토토 커뮤니티합니다. 제공됩니다.

참고

허용하기 위해토토 커뮤니티합리적으로 만들 수 있는 쿼리 플래너 쿼리를 최적화할 때 정보에 입각한 결정을 내리세요.pg_statistic데이터는 다음 날짜에 대해 최신이어야 합니다. 쿼리에 사용된 모든 테이블. 일반적으로autovacuum 데몬할 것이다 자동으로 처리해 주세요. 하지만 최근에 테이블에 내용이 크게 변경되면 다음 작업을 수행해야 할 수도 있습니다. 매뉴얼PostgreSQL : 문서 : 9.2 : 무지개 토토기다리기보다는 autovacuum이 변경 사항을 따라잡도록 하세요.

각 노드의 런타임 비용을 측정하기 위해 실행 계획, 현재 구현분석 토토 커뮤니티쿼리에 프로파일링 오버헤드를 추가합니다. 실행. 그 결과 실행 중토토 커뮤니티하다 분석쿼리의 경우 때때로 훨씬 더 오래 걸릴 수 있습니다. 정상적으로 쿼리를 실행하는 것보다 오버헤드 금액에 따라 다름 쿼리의 성격과 사용되는 플랫폼에 따라 달라집니다. 최악의 경우는 그 자체로 필요한 계획 노드에서 발생합니다. 실행당 시간이 매우 짧으며, 상대적으로 느린 운영 체제에서는 일.

단일 테이블에 대한 간단한 쿼리에 대한 계획을 표시하려면정수열 및 10000행:

토토 커뮤니티 SELECT * FROM foo;

                       쿼리 계획
-------------------------------
 foo의 시퀀스 스캔(비용=0.00..155.00행=10000너비=4)
(1행)

다음은 JSON 출력 형식을 사용한 동일한 쿼리입니다.

토토 커뮤니티(JSON 형식) SELECT * FROM foo;
           쿼리 계획
--------------------------------
 [ +
    +
     "계획":  +
       "노드 유형": "Seq 스캔",+
       "관계 이름": "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행)

다음은 동일한 쿼리이지만 YAML 형식입니다.

토토 커뮤니티(YAML 형식) SELECT * FROM foo WHERE i='4';
          쿼리 계획
------------------
 - 계획: +
     노드 유형: "인덱스 스캔" +
     스캔 방향: "앞으로"+
     인덱스 이름: "fi" +
     관계 이름: "foo" +
     별칭: "foo" +
     시작 비용: 0.00 +
     총 비용: 5.98 +
     계획 행: 1 +
     평면 폭: 4 +
     인덱스 조건: "(i = 4)"
(1행)

XML 형식은 독자의 연습 문제로 남겨둡니다.

다음은 비용 추정이 억제된 동일한 계획입니다:

토토 커뮤니티(비용 거짓) SELECT * FROM foo WHERE i = 4;

        쿼리 계획
---------------
 foo에서 fi를 사용한 인덱스 스캔
   지수 조건: (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행)

물론 여기에 표시된 구체적인 숫자는 다음에 따라 다릅니다. 관련된 테이블의 실제 내용. 또한 숫자와 선택한 쿼리 전략도 다를 수 있습니다.토토 커뮤니티다음으로 인해 출시됨 플래너 개선. 게다가,분석명령은 무작위 샘플링을 사용하여 추정합니다. 데이터 통계; 따라서 비용 추정이 가능합니다. 새로 실행한 후 변경분석, 테이블의 실제 데이터 분포가 그렇지 않은 경우에도 변경되었습니다.

호환성

없습니다토토 커뮤니티문이 정의됨 SQL 표준에서.