| 윈 토토 : 문서 : 9.4 : 윈 | |||
|---|---|---|---|
| 메이저 토토 사이트 : 문서 : 9.4 : execute | PostgreSQL : 문서 : 9.4 : SQL 윈 토토 | PostgreSQL : 문서 : 9.4 : 와이즈 토토 | |
설명 [ (옵션 [, ...] ) ] 성명설명 [ 분석 ] [ 자세한 설명 ]성명
어디에서옵션다음 중 하나일 수 있습니다.분석 [부울]
자세한 내용 [부울]
비용 [부울]
버퍼 [부울]
타이밍 [부울]
형식 텍스트 | XML | JSON | YAML이 명령은 실행 토토 사이트 순위을 표시합니다.포스트그레SQLplanner는 제공된 명령문을 생성합니다. 실행 토토 사이트 순위은 문에서 참조하는 테이블을 일반 순차 스캔, 인덱스 스캔 등으로 스캔하는 방법과 여러 테이블을 참조하는 경우 각 입력 테이블에서 필요한 행을 모으는 데 어떤 조인 알고리즘을 사용하는지 보여줍니다.
표시의 가장 중요한 부분은 예상 명령문 실행 비용입니다. 이는 명령문을 실행하는 데 걸리는 시간에 대한 플래너의 추측입니다(임의적인 비용 단위로 측정되지만 일반적으로 디스크 페이지 가져오기를 의미함). 실제로 두 개의 숫자가 표시됩니다. 첫 번째 행이 반환되기 전의 시작 비용과 모든 행을 반환하는 데 드는 총 비용입니다. 대부분의 쿼리에서는 총 비용이 중요하지만 하위 쿼리와 같은 컨텍스트에서는존재함, 플래너는 가장 작은 총 비용 대신 가장 작은 시작 비용을 선택합니다(어쨌든 실행자는 한 행을 얻은 후에 중지하므로). 또한, a로 반환할 행 수를 제한하는 경우제한절, 플래너는 어떤 토토 사이트 순위이 실제로 가장 저렴한지 추정하기 위해 엔드포인트 비용 간에 적절한 보간을 수행합니다.
그분석옵션은 명령문이 계획된 것이 아니라 실제로 실행되도록 합니다. 그런 다음 각 계획 노드 내에서 소비된 총 경과 시간(밀리초) 및 실제로 반환된 총 행 수를 포함하여 실제 런타임 통계가 디스플레이에 추가됩니다. 이는 기획자의 추정이 현실에 가까운지 확인하는 데 유용합니다.
중요:문이 실제로 실행되는 경우는 다음과 같습니다.분석옵션이 사용됩니다. 그래도설명다음의 모든 출력을 삭제합니다.선택이 반환되면 문의 다른 부작용이 평소와 같이 발생합니다. 이용을 원하시는 경우분석 설명에삽입, 업데이트, 삭제, 다음으로 테이블 생성또는실행명령문이 데이터에 영향을 주지 않도록 하는 경우 다음 접근 방식을 사용하세요.
시작; 설명 분석 ...; 롤백;
오직분석그리고상세옵션은 옵션 목록을 괄호로 묶지 않고 해당 순서대로만 지정할 수 있습니다. 이전에토토 사이트 순위9.0, 괄호 안의 구문만 지원됩니다. 모든 새로운 옵션은 괄호로 묶인 구문에서만 지원될 것으로 예상됩니다.
명령을 실행하고 실제 실행 시간 및 기타 통계를 표시합니다. 이 매개변수의 기본값은거짓.
계획에 관한 추가 정보를 표시합니다. 특히 계획 트리의 각 노드에 대한 출력 열 목록, 스키마 한정 테이블 및 함수 이름을 포함하고, 항상 범위 테이블 별칭을 사용하여 표현식의 변수에 레이블을 지정하고, 통계가 표시되는 각 트리거의 이름을 항상 인쇄합니다. 이 매개변수의 기본값은거짓.
각 계획 노드의 예상 시작 및 총 비용, 예상 행 수 및 각 행의 예상 너비에 대한 정보를 포함합니다. 이 매개변수의 기본값은참.
버퍼 사용량에 대한 정보를 포함합니다. 구체적으로 적중, 읽기, 더티화 및 쓰기된 공유 블록 수, 적중, 읽기, 더티화 및 쓰기된 로컬 블록 수, 읽고 쓴 임시 블록 수를 포함합니다. 갑히트필요할 때 블록이 이미 캐시에서 발견되었기 때문에 읽기가 회피되었음을 의미합니다. 공유 블록에는 일반 테이블과 인덱스의 데이터가 포함됩니다. 로컬 블록에는 임시 테이블과 인덱스의 데이터가 포함됩니다. 임시 블록에는 정렬, 해시, Materialise 토토 사이트 순위 노드 및 유사한 경우에 사용되는 단기 작업 데이터가 포함되어 있습니다. 블록 수더러워진이 쿼리에 의해 변경되었지만 이전에 수정되지 않은 블록의 수를 나타냅니다. 블록 수작성됨쿼리 처리 중에 이 백엔드에 의해 캐시에서 제거된 이전에 더티된 블록 수를 나타냅니다. 상위 레벨 노드에 대해 표시되는 블록 수에는 모든 하위 노드에서 사용되는 블록 수가 포함됩니다. 텍스트 형식에서는 0이 아닌 값만 인쇄됩니다. 이 매개변수는 다음과 같은 경우에만 사용할 수 있습니다.분석또한 활성화되어 있습니다. 기본값은거짓.
실제 시작 시간과 각 노드에서 소요된 시간을 출력에 포함합니다. 시스템 시계를 반복적으로 읽는 오버헤드로 인해 일부 시스템에서는 쿼리 속도가 크게 느려질 수 있으므로 이 매개변수를 다음과 같이 설정하는 것이 유용할 수 있습니다.거짓정확한 시간이 아닌 실제 행 개수만 필요한 경우. 이 옵션을 사용하여 노드 수준 타이밍이 꺼진 경우에도 전체 문의 실행 시간은 항상 측정됩니다. 이 매개변수는 다음과 같은 경우에만 사용할 수 있습니다.분석또한 활성화되어 있습니다. 기본값은참.
TEXT, XML, JSON 또는 YAML이 될 수 있는 출력 형식을 지정하십시오. 텍스트가 아닌 출력에는 텍스트 출력 형식과 동일한 정보가 포함되지만 프로그램에서 구문 분석하기가 더 쉽습니다. 이 매개변수의 기본값은텍스트.
선택한 옵션을 켜야 할지 꺼야 할지 지정합니다. 쓸 수 있습니다참, 켜짐또는1옵션을 활성화하고거짓, 꺼짐또는0비활성화합니다.부울값을 생략할 수도 있습니다. 이 경우참가정됩니다.
모두선택, 삽입, 업데이트, 삭제, 값, 실행, 선언, 다음으로 테이블 생성또는다음으로 구체화된 뷰 생성실행 계획을 보고 싶은 성명입니다.
명령의 결과는 선택한 계획에 대한 텍스트 설명입니다.성명, 선택적으로 실행 통계로 주석이 추가됩니다.PostgreSQL : 문서 : 9.4 : 설명 토토 꽁 머니제공된 정보를 설명합니다.
허용하기 위해포스트그레SQL쿼리를 최적화할 때 합리적으로 정보를 바탕으로 결정을 내릴 수 있는 쿼리 플래너,PostgreSQL :데이터는 쿼리에 사용된 모든 테이블에 대해 최신 상태여야 합니다. 일반적으로autovacuum 데몬이 작업은 자동으로 처리됩니다. 그러나 최근에 테이블의 내용이 크게 변경된 경우 수동으로 작업해야 할 수도 있습니다.스포츠 토토 사이트 PostgreSQL : 문서 : 9.4 : Analyzeautovacuum이 변경 사항을 따라잡을 때까지 기다리지 마세요.
실행 계획에서 각 노드의 런타임 비용을 측정하기 위해 현재 구현된분석 설명쿼리 실행에 프로파일링 오버헤드를 추가합니다. 그 결과 실행 중분석 설명쿼리의 경우 쿼리를 정상적으로 실행하는 것보다 훨씬 더 오래 걸릴 수 있습니다. 오버헤드의 양은 쿼리의 성격과 사용되는 플랫폼에 따라 달라집니다. 최악의 경우는 실행당 시간이 거의 필요하지 않은 계획 노드와 하루 중 시간을 얻기 위해 상대적으로 느린 운영 체제 호출을 사용하는 머신에서 발생합니다.
단일 테이블에 대한 간단한 쿼리에 대한 토토 사이트 순위을 표시하려면정수열 및 10000행:
설명 SELECT * FROM foo;
쿼리 계획
-------------------------------
foo의 시퀀스 스캔(비용=0.00..155.00행=10000너비=4)
(1행)
다음은 JSON 출력 형식을 사용한 동일한 쿼리입니다.
EXPLAIN (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(비용=9.54..9.54행=1 너비=8)(실제 시간=0.156..0.161행=11 루프=1)
그룹 키: foo
- 테스트 시 test_pkey를 사용한 인덱스 스캔(비용=0.29..9.29 행=50 너비=8) (실제 시간=0.039..0.091 행=99 루프=1)
지수 조건: ((id $1) AND (id < $2))
계획 시간: 0.197ms
실행 시간: 0.225ms
(6행)
물론, 여기에 표시된 구체적인 숫자는 관련된 테이블의 실제 내용에 따라 달라집니다. 또한 숫자와 선택한 쿼리 전략도 다를 수 있습니다.포스트그레SQL플래너 개선으로 인해 출시되었습니다. 게다가,분석명령은 무작위 샘플링을 사용하여 데이터 통계를 추정합니다. 따라서 새로 실행한 후에 비용 추정이 변경될 수 있습니다.분석, 테이블의 실제 데이터 분포가 변경되지 않은 경우에도 마찬가지입니다.