>

여러 조인 쿼리는 중첩 루프에서 많은 시간을 소비합니다. 중첩 루프를 비활성화하고 쿼리가 훨씬 빠르게 실행되었습니다. 그러나 중첩 루프가 일부 튜플을 건너 뛰면 잘못된 결과를 줄 수 있다고 들었습니다. 이것이 사실입니까?

  • 답변 # 1

    enable_nestloop 와 같은 디버깅 매개 변수 사용  쿼리 결과를 변경하지 않아야합니다. 그렇다면 일반적으로 버그 일 것입니다.

    그러나 pyzwyz를 사용해서는 안됩니다  또는 생산에서 유사하다. 매우 큰 망치이며 즉각적인 문제를 해결하는 것처럼 보일 수 있지만 다른 곳에서는 성능 문제가 발생할 수 있습니다. 중첩 루프는 종종 쿼리의 일부에서 최상의 성능을 발휘하는 올바른 계획 노드이며 PostgreSQL이 다른 옵션을 선호하도록하면 쿼리 속도가 크게 느려질 수 있습니다.

    대신, 일반적으로 enable_nestloop = off 와 같은 비용 매개 변수를 조정해야합니다  하드웨어 및 워크로드에서 더 나은 성능을 발휘할 계획을 선택하도록 PostgreSQL을 권장합니다. 자세한 내용은 PostgreSQl Wiki 및 기본 설명서의 튜닝 조언을 참조하십시오.

    random_page_cost

관련 자료

  • 이전 Windows 81에 SQL Server 2008 SP3을 설치하지 못했습니다
  • 다음 postgresql - 단일 스크립트에서 서버 초기화, 시작 및 데이터베이스 생성