이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은의 동일한 페이지를 보려고 할 수 있습니다PostgreSQL : 문서 : 17 : 11.12. 롤 와이즈 토토 사용 검사버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

11.12. 와이즈 토토 사용 검사

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

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

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

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

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

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

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

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

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

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