11.12. 윈 토토 사용 검사

indexis inpostgresql유지 보수 또는 튜닝이 필요하지 않으면 실제 쿼리 워크로드에서 실제로 사용되는 윈 토토를 확인하는 것이 여전히 중요합니다. 개별 쿼리에 대한 윈 토토 사용을 검사하는 것은에서 수행됩니다.설명명령; 이 목적을위한 적용은에 설명되어 있습니다.PostgreSQL : 문서 : 13 : 14.1. 윈 토토 사용. 에 설명 된대로 실행중인 서버에서 인덱스 사용에 대한 전체 통계를 수집 할 수도 있습니다.롤 토토 PostgreSQL : 문서 : 13 : 27.2. 통계 수집가.

생성 할 윈 토토를 결정하기위한 일반적인 절차를 공식화하기가 어렵습니다. 이전 섹션의 예제에 표시된 여러 가지 일반적인 사례가 있습니다. 많은 실험이 종종 필요합니다. 이 섹션의 나머지 부분은 다음과 같은 팁을 제공합니다.

  • 항상 실행분석첫 번째. 이 명령은 표에서 값의 분포에 대한 통계를 수집합니다. 이 정보는 쿼리에 의해 반환 된 행 수를 추정해야하며, 이는 플래너가 가능한 각 쿼리 계획에 현실적인 비용을 할당하기 위해 필요합니다. 실제 통계가 없으면 일부 기본값이 가정되며 거의 부정확 할 것입니다. 실행하지 않고 응용 프로그램의 윈 토토 사용을 검사합니다분석따라서 잃어버린 원인입니다. 보다섹션 24.1.3and섹션 24.1.6자세한 내용은

  • 실험에 실제 데이터를 사용하십시오. 윈 토토 설정을 위해 테스트 데이터를 사용하면 테스트 데이터에 필요한 색인이 알 수 있지만 그게 전부입니다.

    매우 작은 테스트 데이터 세트를 사용하는 것은 특히 치명적입니다. 10000 행 중 1000 행을 선택하는 것은 윈 토토 후보가 될 수 있지만 100 행 중 1 개를 선택하는 것은 거의 없을 것입니다. 100 행은 단일 디스크 페이지에 적합하고 1 개의 디스크 페이지를 순차적으로 가져올 수있는 계획이 없기 때문입니다..

    또한 테스트 데이터를 구성 할 때주의를 기울여야합니다. 테스트 데이터를 구성 할 때는 종종 응용 프로그램이 아직 생산되지 않을 때 피할 수 없습니다. 매우 유사하거나 완전히 무작위로 또는 정렬 된 순서로 삽입되는 값은 실제 데이터가 가진 분포에서 통계를 기울입니다.

  • 윈 토토를 사용하지 않으면 사용을 강제로 사용하는 데 유용 할 수 있습니다. 다양한 계획 유형을 끄는 런타임 매개 변수가 있습니다 (섹션 19.7.1). 예를 들어, 순차적 스캔을 끄는 (enable_seqscan) 및 중첩 루프 조인 (enable_nestloop14012_14389

  • 윈 토토 사용을 강제로 사용하면 윈 토토를 사용하는 경우 두 가지 가능성이 있습니다. 시스템이 옳고 윈 토토를 사용하는 것이 실제로 적절하지 않거나 쿼리 계획의 비용 추정치가 현실을 반영하지 않습니다. 따라서 윈 토토 유무에 관계없이 쿼리에 시간이 걸립니다. 그만큼분석명령은 여기에서 유용 할 수 있습니다.

  • 비용 추정치가 잘못 되었다면 다시 두 가지 가능성이 있습니다. 총 비용은 각 계획 노드의 당 비용으로 계산됩니다. 계획 노드에 대한 추정 비용은 런타임 매개 변수를 통해 조정할 수 있습니다 (섹션 19.7.2). 부정확 한 선택성 추정치는 통계가 충분하지 않기 때문입니다. 통계 수집 매개 변수를 조정하여이를 개선 할 수 있습니다 (참조사설 토토 PostgreSQL).

    비용을 더 적절하게 조정하는 데 성공하지 못하면 윈 토토 사용을 명시 적으로 강요해야 할 수도 있습니다. 당신은 또한에 연락 할 수도 있습니다PostgreSQL이 문제를 조사 할 개발자.

수정 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면