배트맨 토토

배트맨 토토 - 성명서의 실행 계획을 표시

시놉시스

배트맨 토토 [(옵션[, ...])진술

여기서옵션중 하나 일 수 있습니다 :분석 [부울]부울]부울]부울]부울]부울]부울]부울]부울]부울]

배트맨 토토

이 명령은 실행 계획을 표시합니다.배트맨 토토플래너는 제공된 진술을 생성합니다. 실행 계획은 명세서에 의해 참조 된 테이블이 평범한 순차적 스캔, 인덱스 스캔 등으로 어떻게 스캔되는지를 보여줍니다. 그리고 여러 테이블이 참조되면 각 입력 테이블에서 필요한 행을 결합하는 데 결합 된 알고리즘이 사용됩니다..

디스플레이의 가장 중요한 부분은 예상 명세서 실행 비용입니다. 이는 명령문을 실행하는 데 걸리는 시간에 대한 플래너의 추측입니다 (임의적이지만 일반적으로 디스크 페이지를 의미하는 비용 단위로 측정 됨). 실제로 두 개의 숫자가 표시됩니다. 첫 번째 행 이전의 시작 비용은 반환 될 수 있으며 모든 행을 반환하는 총 비용.존재, 플래너는 가장 작은 총 비용 대신 가장 작은 스타트 업 비용을 선택합니다 (어쨌든 실행자는 한 행을 얻은 후에 멈추기 때문에). 또한 a로 돌아올 행 수를 제한하는 경우Limit조항에서, 플래너는 종말점 비용 사이에 적절한 보간을하여 어떤 계획이 실제로 가장 저렴한 지 추정합니다.

the분석옵션으로 인해 명령문이 실제로 실행됩니다. 그런 다음 실제 실행 시간 통계는 각 계획 노드 (밀리 초) 내에서 소비 된 총 경과 시간과 실제로 반환 한 총 행 수를 포함하여 디스플레이에 추가됩니다.

중요

진술은 실제로에 실행된다는 것을 명심하십시오.분석옵션이 사용됩니다. 하지만배트맨 토토a의 출력을 폐기합니다.select반환하고, 진술의 다른 부작용은 평소와 같이 발생합니다. 사용하고 싶다면분석on삽입, 업데이트, 삭제, 병합, 테이블 작성또는execute명령이 귀하의 데이터에 영향을 미치지 않으면 서이 접근법을 사용하십시오.

시작;

매개 변수

분석

명령을 수행하고 실제 실행 시간 및 기타 통계를 표시하십시오. 이 매개 변수 기본값은false.

Verbose

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

비용

각 계획 노드의 예상 시작 및 총 비용에 대한 정보와 추정 행 수와 각 행의 추정 너비에 대한 정보를 포함시킵니다. 이 매개 변수 기본값은true.

설정

구성 매개 변수에 대한 정보 포함. 특히, 내장 기본값과 다른 값을 가진 쿼리 계획에 영향을 미치는 옵션을 포함합니다.false.

generic_plan

명령문에 매개 변수 자리 표시자가 포함하도록 허용$1, 해당 매개 변수의 값에 의존하지 않는 일반적인 계획을 생성합니다. 보다준비일반 계획 및 매개 변수를 지원하는 진술 유형에 대한 자세한 내용. 이 매개 변수는와 함께 사용할 수 없습니다.분석. 기본적으로false.

버퍼

버퍼 사용에 대한 정보를 포함하십시오. 구체적으로, 공유 블록의 수, 읽기, 더러운 및 서면, 히트, 읽기, 더러운 및 쓰여진 로컬 블록의 수, 읽기 및 작성된 온도 블록 수, 데이터 파일 블록, 로컬 블록 및 임시 파일 블록 (밀리 초) if를 읽고 쓰는 시간이 포함됩니다.track_io_timing가 활성화되었습니다. 에이HIT| 필요할 때 블록이 이미 캐시에서 발견 되었기 때문에 읽기를 피했음을 의미합니다. 공유 블록에는 일반 테이블 및 인덱스의 데이터가 포함되어 있습니다.Dirtied이 쿼리에 의해 변경된 이전에 수정되지 않은 블록의 수를 나타냅니다. 블록 수서면쿼리 처리 중에이 백엔드에 의해 캐시에서 퇴거 된 이전에 드리어 된 블록의 수를 나타냅니다. 상위 노드에 대해 표시된 블록 수에는 모든 하위 노드가 사용하는 블록이 포함됩니다.false.

Serialize

비용에 대한 정보 포함SERIALIZINS쿼리의 출력 데이터는 클라이언트로 보내기 위해 텍스트 또는 이진 형식으로 변환하는 것입니다. 데이터 타입 출력 함수가 비싸거나 if 인 경우 쿼리를 정기적으로 실행하는 데 필요한 시간의 상당 부분이 될 수 있습니다.토스트ED 값은 외부 저장소에서 가져와야합니다.배트맨 토토의 기본 동작,Serialize None, 이러한 변환을 수행하지 않습니다. 만약에텍스트 직렬화또는이진 시리얼지정되고, 적절한 변환이 수행되며, 그렇게하는 시간은 측정됩니다 (타이밍 오프지정). 인 경우버퍼옵션도 지정된 다음 변환과 관련된 버퍼 액세스도 계산됩니다. 그러나 어떠한 경우에도배트맨 토토실제로 결과 데이터를 클라이언트에게 보냅니다. 따라서 네트워크 전송 비용은 이런 식으로 조사 할 수 없습니다.분석도 활성화되어 있습니다. 만약에Serialize논쟁없이 쓰여졌습니다.텍스트가정됩니다.

Wal

WAL 레코드 생성에 대한 정보 포함. 구체적으로, 레코드 수, 전체 페이지 이미지 수 (FPI) 및 바이트로 생성 된 WAL의 양이 포함됩니다.분석도 활성화되어 있습니다. 기본적으로false.

타이밍

출력의 각 노드에 소비 된 실제 시작 시간과 시간 포함. 시스템 시계를 반복적으로 읽는 오버 헤드는 일부 시스템에서 쿼리를 크게 느리게 할 수 있으므로이 매개 변수를 설정하는 것이 유용 할 수 있습니다false실제 행만 계산하는 경우 정확한 시간이 필요합니다. 이 옵션으로 노드 레벨 타이밍을 끄는 경우에도 전체 문의 실행 시간은 항상 측정됩니다.분석도 활성화되어 있습니다. 기본적으로true.

요약

쿼리 계획 후에 요약 정보 (예 : 총 타이밍 정보) 포함. 요약 정보는 기본적으로 기본적으로 포함됩니다.분석는 사용되지만 기본적으로 포함되지 않지만이 옵션을 사용하여 활성화 할 수 있습니다. 계획 시간Execute 배트맨 토토캐시에서 계획을 가져 오는 데 필요한 시간과 필요한 경우 다시 계획에 필요한 시간을 포함합니다.

메모리

쿼리 계획 단계별 메모리 소비에 대한 정보를 포함시킵니다. 구체적으로, Planner Inmemory 구조에서 사용하는 정확한 양의 스토리지와 할당 오버 헤드를 고려한 총 메모리를 포함하십시오.false.

형식

텍스트, XML, Yaml 또는 YAML 일 수있는 출력 형식을 지정하십시오. 비 텍스트 출력에는 텍스트 출력 형식과 동일한 정보가 포함되어 있지만 프로그램이 더 쉽습니다.텍스트.

부울

선택한 옵션을 켜거나 끄야하는지 여부를 지정합니다. 당신은 쓸 수 있습니다true, on또는1옵션을 활성화하려면false, off또는0비활성화하려면. 그만큼부울값도 생략 할 수 있습니다.true가정됩니다.

진술

Anyselect, 삽입, 업데이트, 삭제, 병합, , execute, 선언, 테이블 작성또는구체화 된보기 생성성명서, 당신이보고 싶은 실행 계획.

출력

명령의 결과는를 위해 선택된 계획에 대한 텍스트 배트맨 토토입니다.진술, 선택적으로 실행 통계에 주석이 달린다.섹션 14.1제공된 정보를 배트맨 토토합니다.

노트

허용하려면배트맨 토토쿼리를 최적화 할 때 합리적으로 정보에 입각 한 결정을 내릴 수있는 쿼리 플래너,PG_STATISTIC데이터는 쿼리에 사용되는 모든 테이블에 대해 최신 상태 여야합니다. 일반적으로autovacuum daemon이를 자동으로 처리합니다. 그러나 최근에 테이블이 내용이 상당한 변화를 겪었다면 매뉴얼을 수행해야 할 수도 있습니다.분석Autovacuum이 변경 사항을 따라 잡기를 기다리지 않고.

실행 계획에서 각 노드의 런타임 비용을 측정하기 위해 현재의 구현분석쿼리 실행에 프로파일 링 오버 헤드를 추가합니다. 결과적으로 실행분석쿼리에서 쿼리를 정상적으로 실행하는 것보다 훨씬 오래 걸릴 수 있습니다. 오버 헤드의 양은 쿼리의 특성과 사용되는 플랫폼에 따라 다릅니다.

예제

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

from from from from frome *를 배트맨 토토하십시오.

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

배트맨 토토 (형식 Yaml) 선택 *에서 foo;

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

from footh i = 4;

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

배트맨 토토 (형식 YAML)을 선택하십시오 * FOO에서 i = '4';

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

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

배트맨 토토 (FALSE 비용)을 선택하십시오 * FOO에서 i = 4;

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

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

사용의 예는 다음과 같습니다.Execute 배트맨 토토준비된 쿼리에 대한 실행 계획을 표시하려면 :

테스트에서 선택 합 (bar)으로 쿼리 (int, int)를 준비하십시오

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

이전 예제에 a가 표시되었음을 알 수 있습니다.Customexecute. 또한 매개 변수화 된 쿼리에 대한 일반적인 계획을보고 싶을 수도 있습니다.generic_plan:

배트맨 토토 (generic_plan)

이 경우 파서는이를 올바르게 추론했습니다$1and$2와 동일한 데이터 유형을 가져야합니다id, 그래서 매개 변수 유형 정보 부족준비는 문제가되지 않았습니다. 다른 경우에는 매개 변수 기호의 유형을 명시 적으로 지정해야 할 수도 있습니다.

배트맨 토토 (generic_plan)

호환성

없음배트맨 토토SQL 표준에 정의 된 명령문

다음 구문이 이전에 사용되었습니다배트맨 토토버전 9.0 및 여전히 지원됩니다 :

배트맨 토토 [분석] [Verbose]진술

이 구문에서 옵션은 정확히 표시된 순서로 지정되어야합니다.

참조

분석

정정 제출

올바르지 않은 문서에 아무것도 표시되면 일치하지 않습니다.이 양식문서 문제를보고하려면