11.12. 윈 토토 사용량 조사

윈 토토는PostgreSQL유지 관리나 튜닝이 필요하지 않지만 실제 쿼리 작업 부하에서 실제로 어떤 인덱스가 사용되는지 확인하는 것은 여전히 중요합니다. 개별 쿼리에 대한 인덱스 사용량 조사는 다음을 사용하여 수행됩니다.설명명령; 이 목적을 위한 적용은 다음에 설명되어 있습니다.PostgreSQL : 문서 : 13 : 14.1. 윈 토토 사용. 에 설명된 대로 실행 중인 서버의 인덱스 사용량에 대한 전체 통계를 수집하는 것도 가능합니다.롤 토토 PostgreSQL : 문서 : 13 : 27.2. 통계 수집가.

생성할 색인을 결정하기 위한 일반적인 절차를 공식화하는 것은 어렵습니다. 이전 섹션 전체의 예에 표시된 여러 가지 일반적인 사례가 있습니다. 많은 양의 실험이 필요한 경우가 많습니다. 이 섹션의 나머지 부분에서는 이에 대한 몇 가지 팁을 제공합니다.

  • 항상 실행분석먼저. 이 명령은 테이블의 값 분포에 대한 통계를 수집합니다. 이 정보는 쿼리에서 반환된 행 수를 추정하는 데 필요하며, 이는 플래너가 가능한 각 쿼리 계획에 현실적인 비용을 할당하는 데 필요합니다. 실제 통계가 없으면 일부 기본값이 가정되며 이는 부정확할 가능성이 거의 높습니다. 실행하지 않고 애플리케이션의 인덱스 사용량 검사분석따라서 손실된 원인입니다. 참조섹션 24.1.3그리고섹션 24.1.6더 많은 정보를 원하시면.

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

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

    또한 테스트 데이터를 구성할 때 주의하십시오. 이는 애플리케이션이 아직 생산되지 않은 경우 종종 피할 수 없는 일입니다. 매우 유사하거나 완전히 무작위이거나 정렬된 순서로 삽입된 값은 통계를 실제 데이터의 분포와 다르게 왜곡시킵니다.

  • 색인이 사용되지 않는 경우 강제로 사용하도록 테스트하는 데 유용할 수 있습니다. 다양한 계획 유형을 끌 수 있는 런타임 매개변수가 있습니다(참조섹션 19.7.1). 예를 들어 순차 스캔을 끄는 경우(enable_seqscan) 및 중첩 루프 조인(enable_nestloop14059_14436

  • 강제 윈 토토 사용이 윈 토토를 사용하는 경우 두 가지 가능성이 있습니다. 시스템이 옳고 윈 토토 사용이 실제로 적절하지 않거나 쿼리 계획의 비용 추정이 현실을 반영하지 않습니다. 따라서 윈 토토가 있거나 없는 쿼리 시간을 측정해야 합니다.분석 설명여기서 명령이 유용할 수 있습니다.

  • 비용 추정이 잘못된 것으로 밝혀지면 다시 두 가지 가능성이 있습니다. 총 비용은 각 계획 노드의 행당 비용에 계획 노드의 선택성 추정치를 곱하여 계산됩니다. 계획 노드에 대해 추정된 비용은 런타임 매개변수를 통해 조정될 수 있습니다(에 설명되어 있음).섹션 19.7.2). 부정확한 선택성 추정은 통계가 충분하지 않기 때문에 발생합니다. 통계 수집 매개변수를 조정하여 이를 개선할 수도 있습니다(참조테이블 변경).

    비용을 보다 적절하게 조정하는 데 성공하지 못한 경우 명시적으로 색인 사용을 강제해야 할 수도 있습니다. 다음 담당자에게 문의하실 수도 있습니다.PostgreSQL개발자는 문제를 조사해야 합니다.

수정사항 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.