토토 커뮤니티 [(옵션[, ...])진술토토 커뮤니티 [분석] [Verbose]성명서
여기서옵션|분석 [부울]
말로 [부울]
비용 [부울]
버퍼 [부울]
타이밍 [부울]
형식 텍스트 | XML | JSON | Yaml
이 명령은 실행 계획을 표시합니다.토토 커뮤니티플래너 생성 제공된 진술. 실행 계획은 테이블의 방법을 보여줍니다. 진술서에 의해 언급 된 것은 평원으로 스캔됩니다. 스캔, 인덱스 스캔 등 - 여러 테이블을 참조하는 경우 조인 알고리즘을 사용하여 필요한 것을 함께 모으는 데 사용됩니다. 각 입력 테이블의 행.
디스플레이의 가장 중요한 부분은 추정입니다. 명세서 실행 비용, 즉 플래너의 추측 방법 성명서를 실행하는 데 시간이 걸립니다 (비용 단위로 측정되었습니다. 그것은 임의적이지만 일반적으로 디스크 페이지가 가져옵니다). 실제로 두 개의 숫자가 표시됩니다. 첫 번째 행을 반환 할 수 있으며 모든 비용을 반환하는 총 비용 줄. 대부분의 질문에 대해 총 비용은 중요하지만 하위 쿼리와 같은 컨텍스트존재, 플래너는 가장 적은 총 비용 (집행자가 얻은 후 멈출 수 있기 때문에 어쨌든 한 줄). 또한 반환 할 행 수를 제한하는 경우 A와 함께Limit조항, 플래너는 종말점 비용 사이의 적절한 보간 어떤 계획이 실제로 가장 저렴한 지 추정합니다.
the분석옵션은 계획된 것이 아니라 실제로 실행되는 진술. 그런 다음 실제 런타임 통계는 총계를 포함하여 디스플레이에 추가됩니다. 각 계획 노드 (밀리 초) 내에서 소비 된 시간 및 실제로 반환 된 총 행 수. 이것은 유용합니다 플래너의 추정치가 현실에 가까운 지 확인.
중요 :진술이 있음을 명심하십시오 실제로에 실행되었습니다.분석옵션이 사용됩니다. 하지만토토 커뮤니티a의 출력을 폐기합니다.select반환, 다른 부작용 성명서는 평소와 같이 일어날 것입니다. 사용하고 싶다면분석on삽입, 업데이트, 삭제, 생성 테이블 as또는execute진술 명령이 귀하의 데이터에 영향을 미치지 않으면서도 사용하십시오 접근하다:
시작; 분석 ...; 롤백;
만분석andVerbose옵션을 지정할 수 있습니다 옵션 목록을 괄호로 둘러싸고 주문하십시오. 이전의 에게토토 커뮤니티9.0, the 비 임시 구문은 유일하게 지원되는 구문이었습니다. 예상됩니다 모든 새로운 옵션은 괄호 안에서만 지원됩니다. 통사론.
명령을 내리고 실제 실행 시간을 표시하고 기타 통계. 이 매개 변수 기본값은거짓.
계획에 관한 추가 정보를 표시합니다. 구체적으로 각 노드에 대한 출력 열 목록을 포함하십시오 계획 트리에서 스키마 자격 테이블 및 기능 이름, 항상 표현식으로 변수를 자신의 범위로 레이블을 지정하십시오 테이블 별칭, 항상 각 트리거의 이름을 인쇄하십시오. 어떤 통계가 표시되는지. 이 매개 변수 기본값은거짓.
예상 시작 및 총계에 대한 정보를 포함하십시오 각 계획 노드의 비용 및 추정 수 각 행의 행과 추정 너비. 이 매개 변수 기본값으로true.
버퍼 사용에 대한 정보를 포함하십시오. 구체적으로, 타격, 읽기, 발포성 및 공유 블록 수를 포함하고 서면, 지역 블록의 수는 히트, 읽기, 더미 및 작성되고 온도 블록의 수를 읽고 작성했습니다. 에이hita 블록이 이미 발견 되었기 때문에 읽기를 피했습니다. 필요할 때 캐시. 공유 블록에는 정기적 인 데이터가 포함되어 있습니다 테이블 및 인덱스; 로컬 블록에는 데이터가 포함되어 있습니다 임시 테이블 및 인덱스; 임시 블록에는 포함되어 있습니다 정렬, 해시, 구체화 된 단기 작업 데이터 계획 노드 및 유사한 경우. 블록 수Dirtied이전에 수정되지 않은 블록의 수 이 쿼리로 변경되었습니다. 블록 수서면캐시에서 퇴거 된 이전에 미치광이 블록의 수 쿼리 처리 중에이 백엔드에 의해. 수 상단 노드에 표시된 블록에는 다음이 사용하는 블록이 포함됩니다. 모든 어린이 노드. 텍스트 형식에서는 0이 아닌 값 만 있습니다 인쇄됩니다. 이 매개 변수는에만 사용할 수 있습니다.분석도 활성화되어 있습니다. 그것 기본값으로거짓.
실제 시작 시간과 시간 포함 출력의 노드. 반복적으로 읽는 오버 헤드 시스템 클럭은 일부에서 쿼리를 크게 느리게 할 수 있습니다. 시스템 이므로이 매개 변수를로 설정하는 것이 유용 할 수 있습니다.거짓실제 행만 계산할 때 정확한 시간이 아니라 필요합니다. 이 매개 변수는 일 수 있습니다 사용분석도 활성화되어 있습니다. 기본적으로true.
텍스트, XML, JSON, 출력 형식 지정 또는 Yaml. 비 텍스트 출력에는 동일한 정보가 포함되어 있습니다 텍스트 출력 형식이지만 프로그램이 더 쉽습니다. 구문 분석. 이 매개 변수 기본값은텍스트.
선택한 옵션을 돌려야하는지 여부를 지정합니다 켜짐 또는 끄기. 당신은 쓸 수 있습니다true, on또는1옵션을 활성화하려면거짓, off또는0비활성화하려면. 그만큼부울값도 생략 할 수 있습니다.True가정합니다.
anyselect, 삽입, 업데이트, 삭제, 값, 18621_18630, 선언또는테이블 작성성명서 보고 싶은 계획.
허용하기 위해토토 커뮤니티합리적으로 만들기위한 쿼리 플래너 쿼리를 최적화 할 때 정보에 입각 한 결정,PG_STATISTIC데이터는 최신 상태 여야합니다 쿼리에 사용 된 모든 테이블. 일반적으로autovacuum daemon의지 자동으로 처리하십시오. 그러나 최근에 테이블이 있었다면 내용의 상당한 변화, 당신은 수동PostgreSQL : 문서 : 9.2 : 무지개 토토대신 대신 Autovacuum이 변경 사항을 따라 잡을 수 있도록.
각 노드의 런타임 비용을 측정하려면 실행 계획, 현재 구현분석 토토 커뮤니티쿼리에 프로파일 링 오버 헤드를 추가합니다 실행. 결과적으로 실행토토 커뮤니티 분석쿼리에서 때때로 훨씬 더 오래 걸릴 수 있습니다 쿼리를 정상적으로 실행하는 것보다. 오버 헤드의 양은 달라집니다 쿼리의 특성과 사용되는 플랫폼. 최악의 경우는 그 자체로 필요한 계획 노드에서 발생합니다. 실행 당 거의 시간과 기계에서 비교적 느린 운영 체제는 낮.
단일 테이블에 간단한 쿼리 계획을 표시하려면정수열 및 10000 행 :
from from from * from from extent *; 쿼리 계획 -------------------------------------------------------------------------------- foo에서 seq 스캔 (cost = 0.00..155.00 행 = 10000 너비 = 4) (1 행)
JSON 출력 서식이 포함 된 동일한 쿼리가 있습니다.
토토 커뮤니티 (형식 JSON) 선택 *에서 foo; 쿼리 계획 ---------------------------------- [ + + "계획": + "노드 유형": "seq scan",+ "관계 이름": "foo", + "별칭": "foo", + "시작 비용": 0.00, + "총 비용": 155.00, + "계획 행": 10000, + "계획 너비": 4 + + + ]] (1 행)
인덱스가 있고 색인이있는 쿼리를 사용하는 경우여기서조건,토토 커뮤니티다른 계획을 보여줄 수 있습니다 :
from footh 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 줄)
물론 여기에 표시된 특정 숫자는 테이블의 실제 내용. 또한 숫자 및 선택한 쿼리 전략조차도마다 다를 수 있습니다.토토 커뮤니티릴리스 플래너 개선. 또한분석명령은 임의의 샘플링을 사용하여 추정합니다 데이터 통계; 따라서 비용 추정치가 가능합니다 새로운 달리기 후에 변경분석, 테이블의 실제 데이터 분포가 변경.