이 문서는 지원되지 않는 버전의 와이즈 토토을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다와이즈 토토 : 문서 : 17 : 와이즈 토토버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

와이즈 토토

이름

와이즈 토토-성명서의 실행 계획을 표시

시놉시스

와이즈 토토 [(옵션[, ...])진술와이즈 토토 [분석] [Verbose]Statement

여기서옵션|분석 [부울]
    말로 [부울]
    비용 [부울]
    버퍼 [부울]
    타이밍 [부울]
    형식 텍스트 | XML | JSON | Yaml

와이즈 토토

이 명령은 실행 계획을 표시합니다.와이즈 토토플래너는 제공된 용도를 생성합니다 성명. 실행 계획은 테이블이 참조하는 방법을 보여줍니다 명세서는 평범한 순차적 스캔으로 스캔됩니다. 스캔 등 - 여러 테이블이 참조되면 어떤 조인 알고리즘은 필요한 행을 모으는 데 사용됩니다. 각 입력 테이블.

디스플레이의 가장 중요한 부분은 추정 된 진술입니다. 실행 비용, 이것은 기획 시간에 대한 추측입니다. 진술을 실행하십시오 (비용 단위로 측정 됨 임의적이지만 일반적으로 디스크 페이지가 가져옵니다). 실제로 두 개 숫자가 표시됩니다 : 첫 번째 줄 이전의 시작 비용은 반품, 모든 행을 반환하는 데 총 비용이 있습니다. 대부분의 경우 총 비용은 중요한 것이지만 하위 쿼리존재, 플래너는 총계 대신 가장 작은 스타트 업 비용을 선택하십시오. 비용 (어쨌든 한 행을 얻은 후에 집행자가 멈출 수 있기 때문에). 또한 a로 돌아올 행 수를 제한하는 경우Limit조항, 플래너는 적절합니다 어떤 계획인지 추정하기 위해 종말점 비용 사이의 보간 정말 가장 저렴합니다.

the분석옵션은 문을 만듭니다 계획된 것이 아니라 실제로 실행됩니다. 그런 다음 실제 실행 시간 총 경과를 포함하여 디스플레이에 통계가 추가됩니다. 각 계획 노드 (밀리 초) 내에서 소비 된 시간과 총 실제로 반환 한 행의 수. 이것은 보는 데 유용합니다 플래너의 추정치가 현실에 가까운 지 여부.

중요 :진술은 실제로임을 명심하십시오 에 실행분석옵션이 사용됩니다. 하지만와이즈 토토출력을 폐기합니다 그 aselect다른쪽으로 돌아올 것입니다 진술의 효과는 평소와 같이 발생합니다. 사용하고 싶다면분석on삽입, 업데이트, 삭제, 테이블 작성또는execute명령은 귀하의 데이터에 영향을 미치고이 접근법을 사용합니다.

시작;
분석 ...;
롤백;

분석Verbose옵션을 지정할 수 있습니다 옵션 목록을 괄호로 둘러싸고 주문하십시오. 앞서서와이즈 토토9.0, the 비 임시 구문은 유일하게 지원되는 구문이었습니다. 예상됩니다 모든 새로운 옵션은 괄호 안에서만 지원됩니다. 통사론.

매개 변수

분석

명령을 내리고 실제 실행 시간 및 기타 표시 통계. 이 매개 변수 기본값은거짓.

Verbose

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

비용

추정 시작 및 총 비용에 대한 정보 포함 각 계획 노드뿐만 아니라 추정 행 수 및 각 행의 추정 너비. 이 매개 변수 기본값은true.

버퍼

버퍼 사용에 대한 정보를 포함하십시오. 구체적으로 공유 블록 수는 히트, 읽기, 발포 및 작성된 번호 현지 블록의 히트, 읽기, 더러운, 서면 및 수의 수 임시 블록 읽기 및 작성. 에이HIT는 읽기를 피했음을 의미합니다 필요할 때 블록이 이미 캐시에서 발견 되었기 때문입니다. 공유 블록에는 일반 테이블 및 인덱스의 데이터가 포함되어 있습니다. 로컬 블록 임시 테이블 및 인덱스의 데이터를 포함합니다. 임시 블록 정렬, 해시, 구체화 된 단기 작업 데이터를 포함합니다 계획 노드 및 유사한 경우. 블록 수Dirtied수를 나타냅니다 이 쿼리에 의해 변경된 이전에는 수정되지 않은 블록; ~하는 동안 블록 수서면수를 나타냅니다 이 백엔드 기간 동안 캐시에서 퇴거 된 이전에 디어링 된 블록 쿼리 처리. 상위 수준에 대해 표시된 블록 수 노드에는 모든 하위 노드에서 사용하는 노드가 포함됩니다. 텍스트 형식으로 0이 아닌 값 만 인쇄됩니다. 이 매개 변수 만 사용될 수 있습니다 언제분석도 활성화되어 있습니다. 기본값 에게거짓.

타이밍

실제 시작 시간과 시간 포함 각 노드에 소비 된 시간과 시간 포함 산출. 시스템 시계를 반복적으로 읽는 오버 헤드는 가능합니다 일부 시스템에서 쿼리를 크게 느리게하므로 이 매개 변수를로 설정하는 데 유용합니다.거짓언제 정확한 시간이 아닌 실제 행 계산 만 필요합니다. 런타임 전체 명령문 중 노드 레벨이라도 항상 측정됩니다. 이 옵션으로 타이밍이 꺼집니다. 이 매개 변수는 일 수 있습니다 사용분석도 활성화되어 있습니다. 그것 기본값으로true.

형식

텍스트, XML, JSON 또는 또는 출력 형식을 지정하십시오. 얌. 비 텍스트 출력에는 텍스트와 동일한 정보가 포함되어 있습니다 출력 형식이지만 프로그램이 구문 분석하기가 더 쉽습니다. 이 매개 변수 기본값으로텍스트.

부울

선택한 옵션을 켜야하는지 여부를 지정하거나 끄다. 당신은 쓸 수 있습니다true, on또는1옵션 및거짓, off또는0비활성화하려면. 그만큼부울값도 가능합니다 생략, 어떤 경우trueis 꾸민.

진술

Anyselect, 삽입, 업데이트, 삭제, , execute, 선언또는테이블 작성성명서 보고 싶은 계획.

출력

명령의 결과는 계획에 대한 텍스트 와이즈 토토입니다. 선택성명서, 선택적으로 실행 통계에 주석이 달성되었습니다.섹션 14.1정보를 와이즈 토토합니다 제공.

노트

허용하기 위해와이즈 토토합리적으로 만들기위한 쿼리 플래너 쿼리를 최적화 할 때 정보에 입각 한 결정,PG_STATISTIC데이터는 최신이어야합니다 쿼리에 사용 된 모든 테이블. 일반적으로autovacuum daemon자동으로 관리합니다. 그러나 최근에 테이블이 있었다면 내용의 실질적인 변경 사항은 와이즈 토토서를 수행해야 할 수도 있습니다PostgreSQL : 문서 : 9.3 : 토토 커뮤니티대신 대신 변화를 따라 잡기위한 autovacuum.

각 노드의 런타임 비용을 측정하려면 실행 계획, 현재 구현분석쿼리에 프로파일 링 오버 헤드를 추가합니다 실행. 결과적으로 실행와이즈 토토 분석쿼리에서 때때로 훨씬 더 오래 걸릴 수 있습니다 쿼리를 정상적으로 실행하는 것보다. 오버 헤드의 양은 달라집니다 쿼리의 특성과 사용되는 플랫폼. 그만큼 최악의 경우는 그 자체로 매우 필요로하는 계획 노드에서 발생합니다. 실행 당 거의 시간과 상대적으로있는 기계에서 느린 운영 체제는 시간을 얻을 것을 요구합니다.

예제

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

from from from from from from extion *;

                       쿼리 계획
--------------------------------------------------------------------------------
 foo에서 seq 스캔 (cost = 0.00..155.00 행 = 10000 너비 = 4)
(1 행)

JSON 출력 서식이 포함 된 동일한 쿼리가 있습니다.

와이즈 토토 (형식 JSON) 선택 * From Foo;
           쿼리 계획
----------------------------------
 [ +
    +
     "계획":  +
       "노드 유형": "seq scan",+
       "관계 이름": "foo", +
       "별칭": "foo", +
       "시작 비용": 0.00, +
       "총 비용": 155.00, +
       "계획 행": 10000, +
       "계획 너비": 4 +
      +
    +
 ]]
(1 행)

인덱스가 있고 색인이있는 쿼리를 사용하는 경우여기서조건,와이즈 토토다른 계획을 보여줄 수 있습니다 :

와이즈 토토 *에서 foo where i = 4;

                         쿼리 계획
---------------------------------------------------------------------
 foo에서 fi를 사용한 인덱스 스캔 (비용 = 0.00..5.98 행 = 1 너비 = 4)
   색인 조건 : (i = 4)
(2 줄)

여기에 동일한 쿼리가 있지만 Yaml 형식 :

와이즈 토토 (형식 YAML)을 선택하십시오 * FOO에서 i = '4';
          쿼리 계획
-------------------------------------
 - 계획 : +
     노드 유형 : "인덱스 스캔" +
     스캔 방향 : "포워드"+
     인덱스 이름 : "fi" +
     관계 이름 : "foo" +
     별칭 : "foo" +
     시작 비용 : 0.00 +
     총 비용 : 5.98 +
     줄 계획 : 1 +
     계획 너비 : 4 +
     색인 조건 : "(i = 4)"
(1 행)

XML 형식은 독자를위한 연습으로 남아 있습니다.

비용 추정이 억제 된 동일한 계획이 있습니다.

와이즈 토토 (False 비용) 선택 * FOO에서 i = 4;

        쿼리 계획
----------------------------
 foo에서 fi를 사용한 색인 스캔
   색인 조건 : (i = 4)
(2 줄)

다음은 다음을 사용하는 쿼리에 대한 쿼리 계획의 예입니다. 집계 기능 :

FOO에서 SOLE SOM SOM (i)을 선택하십시오.

                             쿼리 계획
-----------------------------------------------------------------------------------------
 집계 (비용 = 23.93..23.93 줄 = 1 너비 = 4)
   - foo에서 fi를 사용한 색인 스캔 (비용 = 0.00..23.92 행 = 6 너비 = 4)
         색인 조건 : (i <10)
(3 줄)

사용의 예는 다음과 같습니다.와이즈 토토 실행하다준비된 실행 계획을 표시합니다 질문:

테스트에서 SELECT SUM (bar)으로 쿼리 (int, int)를 준비하십시오
    여기서 id $ 1 및 id <$ 2
    foo에 의한 그룹;

execute 쿼리 분석을 와이즈 토토하십시오 (100, 200);

                                                       쿼리 계획
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.
 해고 그레이트 (비용 = 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) 및 (Id <$ 2))
 총 런타임 : 0.851ms
(4 줄)

물론 여기에 표시된 특정 숫자는 실제에 따라 다릅니다. 관련된 테이블의 내용. 또한 숫자와 선택한 쿼리 전략조차도마다 다를 수 있습니다.와이즈 토토플래너로 인한 릴리스 개량. 또한분석명령은 임의의 샘플링을 사용하여 데이터 통계를 추정합니다. 따라서 비용 추정치가 신선한 실행분석, 실제라도 테이블의 데이터 분포가 변경되지 않았습니다.

호환성

없음와이즈 토토명령문 정의 SQL 표준에서.