이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 11.12. 롤 토토 사용 검사버전 또는 위에 나열된 다른 지원되는 버전 중 하나입니다.

11.10. 인덱스 배트맨 토토 검사

indexis inpostgresql유지 보수가 필요하지 않습니다 튜닝, 실제로 어떤 인덱스가 실제로 있는지 확인하는 것이 중요합니다. 실제 쿼리 워크로드에서 배트맨 토토됩니다. 인덱스 배트맨 토토을 검사합니다 개별 쿼리는로 수행됩니다.설명명령; 이것에 대한 적용 목적은에 설명되어 있습니다.PostgreSQL : 문서 : 8.4 : 토토 사이트 사용. 전체 통계를 수집 할 수도 있습니다 에 설명 된대로 실행중인 서버에서 인덱스 사용량섹션 26.2.

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

  • 항상 실행분석첫 번째. 이 명령은 수집됩니다 표에서 값의 분포에 대한 통계. 이 정보는 행 수를 추정하기 위해 필요합니다. 플래너가 할당 해야하는 쿼리로 반환 가능한 각 쿼리 계획에 대한 현실적인 비용. 없을 때 모든 실제 통계, 일부 기본값이 가정됩니다 거의 부정확 할 것입니다. 검사 실행하지 않고 응용 프로그램의 인덱스 사용량분석따라서 잃어버린 원인입니다. 보다업데이트 플래너 통계andAutovacuum 데몬자세한 내용은

  • 실험에 실제 데이터를 배트맨 토토하십시오. 테스트 데이터 배트맨 토토 인덱스 설정이 필요한 인덱스를 알려줍니다. 테스트 데이터이지만 그게 전부입니다.

    매우 작은 테스트 데이터 세트를 사용하는 것은 특히 치명적입니다. 10 만 행 중 1000 개를 선택하는 동안 후보자가 될 수 있습니다. 인덱스의 경우 100 행 중 1 개를 선택하는 것은 거의 없습니다. 100 행은 아마도 단일 디스크 페이지에 맞기 때문에 그리고 순차적으로 이길 수있는 계획이 없습니다 1 디스크 페이지.

    테스트 데이터를 구성 할 때 조심하십시오. 응용 프로그램이 아직 생산되지 않은 경우 피할 수 없습니다. 매우 유사하거나 완전히 무작위 또는 삽입 된 값 정렬 된 순서대로 통계가 실제 데이터가 가질 배포.

  • 인덱스를 배트맨 토토하지 않으면 테스트에 유용 할 수 있습니다. 그들의 배트맨 토토을 강요하십시오. 회전 할 수있는 런타임 매개 변수가 있습니다 다양한 계획 유형 (참조섹션 18.6.1). 예를 들어, 순차적 스캔을 끕니다 (enable_seqscan) 및 중첩 루프 조인 (enable_nestloop) 가장 기본적인 계획은 시스템이 다른 계획. 시스템이 여전히 순차적 스캔을 선택하는 경우 또는 중첩 루프 조인은 아마도 더 근본적인 일이있을 것입니다. 색인이 사용되지 않는 이유; 예를 들어, 쿼리 조건은 인덱스와 일치하지 않습니다. (어떤 종류의 쿼리 이전에 설명 된 색인을 사용할 수 있습니다. 섹션.)

  • 인덱스 배트맨 토토을 강제로 배트맨 토토하면 인덱스를 배트맨 토토하는 경우 두 가지 가능성 : 시스템이 옳고 배트맨 토토합니다. 색인은 실제로 적절하지 않거나 쿼리 계획은 현실을 반영하지 않습니다. 시간이 있어야합니다 색인이 있거나없는 쿼리. 그만큼분석명령이 유용 할 수 있습니다 여기.

  • 비용 추정이 잘못 되었다면 거기 다시 한번, 두 가지 가능성입니다. 총 비용은 계산됩니다 각 계획 노드 시간의 당 비용에서 계획 노드의 선택성 추정치. 비용이 추정되었습니다 계획 노드의 경우 런타임 매개 변수를 통해 조정할 수 있습니다. (설명섹션 18.6.2). 부정확 한 선택성 추정치는 기인합니다 통계가 충분하지 않습니다. 이것을 개선하는 것이 가능할 수 있습니다 통계 수집 매개 변수를 조정하여 (참조사설 토토 PostgreSQL).

    비용을 더 이상 조정하는 데 성공하지 않는 경우 적절한 경우 인덱스 강제에 의지해야 할 수도 있습니다. 명시 적으로 배트맨 토토합니다. 당신은 또한에 연락 할 수도 있습니다PostgreSQL개발자 문제를 조사하십시오.