와이즈 토토 [(옵션[, ...])진술와이즈 토토 [분석] [Verbose]진술
여기서옵션|분석 [부울]
말로 [부울]
비용 [부울]
버퍼 [부울]
형식 텍스트 | XML | JSON | Yaml
이 명령은 실행 계획을 표시합니다.와이즈 토토플래너 생성 제공된 진술. 실행 계획은 테이블의 방법을 보여줍니다. 진술서에 의해 언급 된 것은 평원으로 스캔됩니다. 스캔, 인덱스 스캔 등 - 여러 테이블을 참조하는 경우 조인 알고리즘을 사용하여 필요한 것을 함께 모으는 데 사용됩니다. 각 입력 테이블의 행.
디스플레이의 가장 중요한 부분은 추정입니다. 명세서 실행 비용, 즉 플래너의 추측 방법 문을 실행하는 데 시간이 걸립니다 (디스크 단위로 측정 됨 페이지를 가져옵니다). 실제로 두 개의 숫자가 표시됩니다 : 시작 시간 첫 번째 행을 반환하기 전에 모든 행을 반환하십시오. 대부분의 쿼리에서 총 시간은 무엇입니다 문제, 그러나 하위 쿼리와 같은 맥락에서존재, 플래너는 가장 작은 것을 선택합니다 가장 작은 총 시간 대신 시작 시간 (이후 어쨌든 실행자는 한 줄을 얻은 후에 멈출 것입니다). 또한, 당신이 a로 반환 할 행 수를 제한하십시오.Limit조항, 플래너는 적절합니다 어떤 계획을 추정하기 위해 종말점 비용 사이의 보간 정말로 가장 저렴합니다.
the분석옵션은 계획된 것이 아니라 실제로 실행되는 진술. 총계 각 계획 노드 (밀리 초) 내에서 소비 된 시간 및 실제로 반환 된 총 행 수는 표시하다. 이것은 플래너가 있는지 확인하는 데 유용합니다 추정치는 현실에 가깝습니다.
중요 :진술이 있음을 명심하십시오 실제로에 실행되었습니다.분석옵션이 사용됩니다. 하지만와이즈 토토a 출력을 폐기합니다.select반환, 다른 부작용 성명서는 평소와 같이 일어날 것입니다. 사용하고 싶다면분석 와이즈 토토on삽입, 업데이트, 삭제, 생성 테이블 as또는execute진술 명령이 귀하의 데이터에 영향을 미치지 않으면서도 사용하십시오 접근하다:
시작; 분석 ...; 롤백;
만분석andVerbose옵션을 지정할 수 있습니다 옵션 목록을 괄호로 둘러싸고 주문하십시오. 이전의 에게와이즈 토토9.0, the 비 임시 구문은 유일하게 지원되는 구문이었습니다. 예상됩니다 모든 새로운 옵션은 괄호 안에서만 지원됩니다. 통사론.
명령을 내리고 실제 실행 시간을 표시하십시오. 이 매개 변수 기본값은거짓.
계획에 관한 추가 정보를 표시합니다. 구체적으로 각 노드에 대한 출력 열 목록을 포함하십시오 계획 트리에서 스키마 자격 테이블 및 기능 이름, 항상 표현식으로 변수를 자신의 범위로 레이블을 지정하십시오 테이블 별칭, 항상 각 트리거의 이름을 인쇄하십시오. 어떤 통계가 표시되는지. 이 매개 변수 기본값은거짓.
추정 된 시작 및 총에 대한 정보를 포함하십시오 각 계획 노드의 비용 및 추정 수 각 행의 행과 추정 너비. 이 매개 변수 기본값으로true.
버퍼 사용에 대한 정보를 포함하십시오. 구체적으로, 공유 블록 히트, 읽기 및 기록, 로컬 블록의 수는 적중하고, 읽고, 쓰고, 그리고 온도 블록의 수는 읽고 씁니다. 공유 블록, 로컬 블록 및 온도 블록에는 테이블이 포함되어 있습니다 인덱스, 임시 테이블 및 임시 인덱스 및 디스크 정렬 및 구체화 된 계획에 각각 사용되는 블록. 상단 노드에 표시된 블록 수에는 다음이 포함됩니다. 모든 어린이 노드에서 사용하는 것. 텍스트 형식으로 만 0이 아닌 값이 인쇄됩니다. 이 매개 변수는 일 수 있습니다 와 함께 사용분석매개 변수. 기본적으로거짓.
텍스트, XML, JSON, 출력 형식 지정 또는 Yaml. 비 텍스트 출력에는 동일한 정보가 포함되어 있습니다 텍스트 출력 형식이지만 프로그램이 더 쉽습니다. 구문 분석. 이 매개 변수 기본값은텍스트.
선택한 옵션을 돌려야하는지 여부를 지정합니다 켜짐 또는 끄기. 당신은 쓸 수 있습니다true, on또는1옵션을 활성화하려면거짓, OFF또는0비활성화하려면. 그만큼부울값도 생략 할 수 있습니다.true가정됩니다.
anyselect, 삽입, 업데이트, 삭제, 값, execute, 선언또는테이블 작성성명서 보고 싶은 계획.
Optimizer의 사용에 대한 희소 문서 만 있습니다. 비용 정보와이즈 토토. 참조PostgreSQL : 문서 : 9.1 : 토토 사이트 추천 토토 사이트 추천더 많은 것 정보.
허용하기 위해와이즈 토토합리적으로 만들기위한 쿼리 플래너 쿼리를 최적화 할 때 정보에 입각 한 결정,Analyze명령문은 기록되도록 실행해야합니다 표에서 데이터 분포에 대한 통계. 만약에 당신은 이것을하지 않았습니다 (또는 통계적 분포가 테이블의 데이터가 마지막으로 크게 변경되었습니다분석실행), 추정 비용 쿼리의 실제 속성을 준수하지는 않을 것입니다. 결과적으로 열등한 쿼리 계획이 선택 될 수 있습니다.
각 노드의 런타임 비용을 측정하려면 실행 계획, 현재 구현분석 와이즈 토토상당한 프로파일 링을 추가 할 수 있습니다 쿼리 실행에 대한 오버 헤드. 결과적으로 실행분석쿼리에서 때때로 가져갈 수 있습니다 정상적으로 쿼리를 실행하는 것보다 훨씬 길다. 그만큼 오버 헤드의 양은 쿼리의 특성에 따라 다릅니다.
단일 테이블에 간단한 쿼리 계획을 표시하려면Integer열 및 10000 행 :
from from from * from from select *; 쿼리 계획 -------------------------------------------------------------------------------- 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 FROON FOO WHER I = 4; 쿼리 계획 --------------------------------------------------------------------- foo에서 fi를 사용한 인덱스 스캔 (비용 = 0.00..5.98 행 = 1 너비 = 4) 색인 조건 : (i = 4) (2 줄)
여기에 동일한 쿼리가 있지만 Yaml 출력 :
와이즈 토토 (형식 YAML)을 선택하십시오 * FOO에서 foo where 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)을 선택하여 i <10; 쿼리 계획 ----------------------------------------------------------------------------------------- 집계 (비용 = 23.93..23.93 줄 = 1 너비 = 4) - foo에서 fi를 사용한 색인 스캔 (비용 = 0.00..23.92 행 = 6 너비 = 4) 색인 조건 : (i <10) (3 줄)
사용의 예는 다음과 같습니다.와이즈 토토 실행하다준비된 실행 계획을 표시합니다 질문:
테스트에서 선택 합 (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 줄)
물론 여기에 표시된 특정 숫자는 테이블의 실제 내용. 또한 숫자 및 선택한 쿼리 전략조차도마다 다를 수 있습니다.와이즈 토토릴리스 플래너 개선. 또한분석명령은 임의의 샘플링을 사용하여 추정합니다 데이터 통계; 따라서 비용 추정치가 가능합니다 새로운 달리기 후에 변경분석, 테이블의 실제 데이터 분포가 변경.