이 구성 매개변수는 대략적인 방법을 제공합니다. 무지개 토토 최적화 프로그램이 선택한 무지개 토토 계획에 영향을 줍니다. 만약 특정 무지개 토토에 대해 최적화 프로그램이 선택한 기본 계획은 최적, a임시해결책은 이러한 구성 매개변수 중 하나를 사용하여 강제로 최적화 프로그램은 다른 계획을 선택합니다. 더 나은 개선 방법 최적화 프로그램이 선택한 계획의 품질에는 조정이 포함됩니다. 플래너 비용 상수(참조섹션 18.7.2), 실행 중PostgreSQL : 문서 : 9.3 : 토토 커뮤니티수동으로 값 증가default_statistics_target구성 매개변수 및 통계량 증가 다음을 사용하여 특정 열에 대해 수집됨변경 테이블 세트 통계.
무지개 토토 플래너의 비트맵 스캔 계획 사용을 활성화 또는 비활성화합니다. 유형. 기본값은켜짐.
무지개 토토 플래너의 해시 사용을 활성화 또는 비활성화합니다. 집계 계획 유형. 기본값은켜짐.
무지개 토토 플래너의 해시 조인 계획 사용을 활성화 또는 비활성화합니다. 유형. 기본값은켜짐.
무지개 토토 플래너의 인덱스 스캔 계획 사용을 활성화 또는 비활성화합니다. 유형. 기본값은켜짐.
무지개 토토 플래너의 인덱스 전용 스캔 사용을 활성화 또는 비활성화합니다. 계획 유형. 기본값은켜짐.
무지개 토토 플래너의 구체화 사용을 활성화 또는 비활성화합니다. 구체화를 완전히 억제하는 것은 불가능하지만 이 변수 off는 플래너가 구체화를 삽입하는 것을 방지합니다. 정확성을 위해 필요한 경우를 제외하고 노드. 는 기본값은켜짐.
무지개 토토 플래너의 병합-조인 계획 사용을 활성화 또는 비활성화합니다. 유형. 기본값은켜짐.
쿼리 플래너의 중첩 루프 조인 사용을 활성화 또는 비활성화합니다. 계획. 중첩 루프 조인을 완전히 억제하는 것은 불가능합니다. 이 변수를 끄면 플래너가 다음과 같은 경우 변수를 사용하지 못하게 됩니다. 다른 방법도 사용할 수 있습니다. 기본값은켜짐.
무지개 토토 플래너의 순차 스캔 사용을 활성화 또는 비활성화합니다. 계획 유형. 순차 스캔을 완전히 억제하는 것은 불가능합니다. 하지만 이 변수를 끄면 플래너가 다른 방법을 사용할 수 있는 경우 하나입니다. 기본값은켜짐.
쿼리 플래너의 명시적 정렬 사용을 활성화 또는 비활성화합니다. 단계. 명시적 정렬을 완전히 억제하는 것은 불가능하지만 이 변수를 끄면 플래너가 다음과 같은 경우 변수를 사용하지 못하게 됩니다. 다른 방법도 사용할 수 있습니다. 기본값은켜짐.
무지개 토토 플래너의 사용을 활성화 또는 비활성화합니다.TID스캔 계획 유형. 기본값은켜짐.
그비용여기에 설명된 변수 단면은 임의의 척도로 측정됩니다. 오직 그들의 친척 값이 중요하므로 모두 동일한 요소로 확장하거나 축소합니다. 기획자의 선택에는 아무런 변화가 없습니다. 기본적으로 이러한 비용 변수는 순차적 페이지 비용을 기반으로 합니다. 가져오기; 즉,seq_page_cost이다 일반적으로 다음과 같이 설정됩니다.1.0그리고 다른 하나 이를 참조하여 비용 변수를 설정합니다. 하지만 당신은 사용할 수 있습니다 원하는 경우 다른 규모(예: 실제 실행 시간) 특정 머신에서는 밀리초입니다.
참고:안타깝게도 잘 정의된 방법은 없습니다. 비용 변수에 대한 이상적인 값을 결정합니다. 그들은 최고입니다 전체 쿼리 조합에 대한 평균으로 처리됩니다. 특정 설치를 받게됩니다. 이는 이를 변경한다는 의미입니다. 단 몇 번의 실험만을 토대로 하는 것은 매우 위험합니다.
디스크 페이지 가져오기 비용에 대한 플래너의 추정치를 설정합니다. 이는 일련의 순차적 가져오기의 일부입니다. 기본값은 1.0입니다. 이 값은 특정 테이블과 인덱스에 대해 재정의될 수 있습니다. 동일한 이름의 테이블스페이스 매개변수를 설정하여 테이블스페이스 (참조PostgreSQL : 문서 : 9.3 : 테이블 토토 결과 변경).
계획자의 예상 비용을 설정합니다. 비순차적으로 가져온 디스크 페이지. 기본값은 4.0입니다. 이 값 특정 테이블스페이스의 테이블과 인덱스에 대해 재정의될 수 있습니다. 동일한 이름의 테이블스페이스 매개변수를 설정하여(참조테이블스페이스 변경).
이 값을 기준으로 줄이기seq_page_cost시스템이 색인을 선호하게 됩니다. 스캔; 이를 높이면 인덱스 스캔이 상대적으로 더 많이 보입니다. 비싸다. 두 값을 함께 높이거나 낮춰 변경할 수 있습니다. CPU 비용 대비 디스크 I/O 비용의 중요성 다음 매개변수로 설명됩니다.
기계적 디스크 저장소에 대한 무작위 액세스는 일반적으로 훨씬 더 많습니다. 4배 순차 액세스보다 비용이 많이 듭니다. 그러나 더 낮은 대부분의 무작위 액세스는 기본값이 사용됩니다(4.0). 인덱스 읽기와 같은 디스크는 캐시에 있는 것으로 간주됩니다. 는 기본값은 40으로 임의 액세스를 모델링하는 것으로 생각할 수 있습니다. 순차보다 시간이 느리지만 무작위 읽기의 90%가 예상됩니다. 캐시됩니다.
90% 캐시율이 잘못된 가정이라고 생각하는 경우 워크로드를 더 잘 반영하기 위해 random_page_cost를 늘릴 수 있습니다. 무작위 스토리지 읽기의 실제 비용입니다. 이에 따라 귀하의 경우 데이터베이스가 캐시에 있는 경우와 같이 데이터가 완전히 캐시에 있을 가능성이 높습니다. 전체 서버 메모리보다 작아서 감소합니다. random_page_cost가 적절할 수 있습니다. 무작위성이 낮은 저장소 순차 대비 읽기 비용(예: 솔리드 스테이트 드라이브(Solid-State Drive) 또한 random_page_cost의 값이 낮을수록 더 잘 모델링됩니다.
팁:시스템에서 설정을 허용하지만random_page_cost이하seq_page_cost, 물리적으로 그렇게 하는 것은 합리적이지 않습니다 그래서. 그러나 데이터베이스가 다음과 같은 경우 동일하게 설정하는 것이 좋습니다. RAM에 완전히 캐시됩니다. 이 경우에는 페널티가 없기 때문입니다. 페이지를 순서대로 만지지 마세요. 또한 캐시량이 많은 데이터베이스에서는 CPU 매개변수에 비해 두 값을 모두 낮춰야 합니다. 이미 RAM에 있는 페이지를 가져오는 비용은 그보다 훨씬 적습니다. 일반적으로 그럴 것입니다.
각 행 처리 비용에 대한 플래너의 추정치를 설정합니다. 쿼리 중. 기본값은 0.01입니다.
각 색인 처리 비용에 대한 계획자의 추정치를 설정합니다. 인덱스 스캔 중 항목. 기본값은 0.005입니다.
각 처리 비용에 대한 계획자의 추정치를 설정합니다. 쿼리 중에 실행되는 연산자 또는 함수입니다. 기본값은 0.0025.
계획자의 유효 크기에 대한 가정을 설정합니다. 단일 쿼리에 사용할 수 있는 디스크 캐시입니다. 이것은 고려된다 지수 사용 비용 추정치; 더 높은 가치는 인덱스 스캔이 사용될 가능성이 높으며 값이 낮을수록 순차 스캔이 사용될 가능성이 더 높습니다. 이것을 설정할 때 매개변수를 모두 고려해야 합니다.PostgreSQL의 공유 버퍼 및 다음에 사용될 커널의 디스크 캐시PostgreSQL데이터 파일, 일부 데이터는 두 곳에 모두 존재합니다. 또한 예상되는 숫자도 고려하십시오. 서로 다른 테이블에 대한 동시 무지개 토토를 수행해야 하기 때문입니다. 사용 가능한 공간을 공유합니다. 이 매개변수는 크기에 영향을 주지 않습니다. 할당된 공유 메모리의 수PostgreSQL, 커널 디스크도 예약하지 않습니다. 캐시; 추정 목적으로만 사용됩니다. 시스템은 또한 무지개 토토 사이에 데이터가 디스크 캐시에 남아 있다고 가정하지 않습니다. 는 기본값은 128MB입니다(128MB).
유전자 쿼리 최적화 프로그램(GEQO)은 다음을 수행하는 알고리즘입니다. 휴리스틱 검색을 이용한 쿼리 계획. 이렇게 하면 계획이 줄어듭니다. 복잡한 쿼리(많은 관계를 결합하는 쿼리)에 대한 시간 때로는 발견된 것보다 열등한 계획을 작성하는 데 드는 비용 일반적인 완전 검색 알고리즘을 사용합니다. 자세한 내용은 참조PostgreSQL : 문서 : 9.3 : 유전자 사설 토토 사이트 옵티마이저.
유전자 쿼리 최적화를 활성화 또는 비활성화합니다. 이 날짜는 다음과 같습니다. 기본값. 일반적으로 프로덕션에서는 끄지 않는 것이 가장 좋습니다.geqo_threshold변수는 더 많은 것을 제공합니다 GEQO를 세부적으로 제어합니다.
유전자 무지개 토토 최적화를 사용하여 최소한의 무지개 토토를 계획하세요. 이 많은발신관련 항목. (참고하세요 에완전 외부 조인구조물은 다음으로만 계산됩니다. 하나발신item.) 기본값은 12입니다. 더 간단한 쿼리는 일반적으로 일반 쿼리를 사용하는 것이 가장 좋습니다. 철저한 검색 플래너이지만 테이블이 많은 쿼리의 경우 철저한 검색에는 시간이 너무 오래 걸립니다. 종종 페널티보다 더 오래 걸립니다. 최적이 아닌 계획을 실행합니다. 따라서 크기에 대한 임계값은 다음과 같습니다. 쿼리는 GEQO 사용을 관리하는 편리한 방법입니다.
계획 시간과 쿼리 계획 간의 균형을 제어합니다. GEQO의 품질. 이 변수는 다음 범위의 정수여야 합니다. 1~10. 기본값은 5입니다. 값이 클수록 시간이 늘어납니다. 쿼리 계획을 세우는 데 시간을 소비할 뿐만 아니라 효율적인 쿼리 계획이 선택됩니다.
geqo_effort실제로는 그렇지 않습니다 직접적으로 무엇이든; 기본값을 계산하는 데에만 사용됩니다. GEQO 동작에 영향을 미치는 다른 변수에 대해(설명됨) 아래). 원하는 경우 다른 매개변수를 직접 설정할 수 있습니다. 대신.
GEQO가 사용하는 풀 크기, 즉 유전적 집단에 속한 개인. 최소 2개 이상이어야 하며, 유용한 값은 일반적으로 100~1000입니다. 0으로 설정된 경우( 기본 설정) 다음을 기준으로 적합한 값이 선택됩니다.geqo_effort및 테이블 수 무지개 토토입니다.
GEQO가 사용하는 세대 수를 제어합니다. 알고리즘의 반복 횟수. 최소한 하나 이상이어야 하며, 유용한 값은 풀 크기와 동일한 범위에 있습니다. 설정된 경우 0(기본 설정)으로 설정하면 적합한 값이 선택됩니다. 에geqo_pool_size.
GEQO가 사용하는 선택 바이어스를 제어합니다. 선택편향은 인구 내의 선택압. 값은 다음에서 올 수 있습니다. 1.50~2.00; 후자가 기본값입니다.
사용된 난수 생성기의 초기값을 제어합니다 조인 순서 검색 공간을 통해 무작위 경로를 선택하기 위해 GEQO를 사용합니다. 값의 범위는 0(기본값)부터 1까지입니다. 다양한 값은 탐색된 조인 경로 세트를 변경하며 결과적으로 더 좋든 나쁘든 최적의 경로를 찾고 있습니다.
테이블 열에 대한 기본 통계 목표를 설정합니다. 다음을 통해 설정된 열별 타겟테이블 설정 변경 통계. 값이 클수록 수행하는 데 필요한 시간이 늘어납니다.분석, 그러나 품질이 향상될 수 있습니다. 기획자의 추정. 기본값은 100입니다. 자세한 내용은 의 통계 사용에 대해PostgreSQL무지개 토토 플래너, 참조섹션 14.2.
무지개 토토 플래너의 테이블 제약 조건 사용을 제어합니다. 무지개 토토를 최적화합니다. 허용되는 값은constraint_exclusion아르켜짐(모든 테이블의 제약 조건 검사),꺼짐(절대 제약 조건을 검사하지 않음) 및파티션(상속 하위 테이블에 대해서만 제약 조건을 검사하고유니온 전체하위 쿼리).파티션이 기본 설정입니다. 자주 사용됩니다 성능 향상을 위해 상속 및 분할된 테이블을 사용합니다.
이 매개변수가 특정 테이블에 대해 허용하는 경우, 플래너는 무지개 토토 조건을 테이블의 조건과 비교합니다.확인제약조건을 적용하고 스캔 테이블을 생략합니다. 조건이 제약 조건과 모순됩니다. 예를 들면:
CREATE TABLE 상위(키 정수, ...); CREATE TABLE child1000(확인(1000에서 1999 사이의 키)) INHERITS(부모); CREATE TABLE child2000(확인(2000에서 2999 사이의 키)) INHERITS(부모); ... SELECT * FROM 상위 WHERE 키 = 2400;
제약조건 제외가 활성화되면 이선택스캔하지 않습니다어린이1000전혀 성능이 향상됩니다.
현재 제약 조건 제외는 기본적으로 다음에 대해서만 활성화됩니다. 테이블 파티셔닝을 구현하는 데 자주 사용되는 경우입니다. 터닝 모든 테이블에 대해 이를 설정하면 상당한 추가 계획 오버헤드가 부과됩니다. 간단한 쿼리에서는 눈에 띄며 대부분의 경우 아무런 이점도 얻지 못합니다. 간단한 쿼리의 경우. 분할된 테이블이 없는 경우 다음을 수행할 수 있습니다. 완전히 끄는 것이 좋습니다.
참조섹션 5.9.4제약조건 제외 사용에 대한 자세한 내용은 파티셔닝.
커서 행의 일부에 대한 플래너의 추정을 설정합니다. 그것은 검색될 것입니다. 기본값은 0.1입니다. 이 값이 작을수록 플래너가 사용하는 쪽으로 편견을 설정함"빠르게 시작"처음 몇 개를 검색할 커서에 대한 계획 행을 빠르게 가져오는 반면 모든 행을 가져오는 데 오랜 시간이 걸릴 수도 있습니다. 값이 클수록 총 예상 시간이 더 강조됩니다. 에서 최대 설정 1.0, 커서는 일반 것과 똑같이 계획됩니다. 얼마나 빨리가 아니라 총 예상 시간만 고려하는 쿼리 첫 번째 행이 전달될 수 있습니다.
플래너는 다음과 같은 경우 하위 쿼리를 상위 쿼리로 병합합니다. 결과적으로발신목록에 더 이상 없을 것입니다 이 많은 아이템보다. 값이 작을수록 계획 시간이 단축되지만 열악한 쿼리 계획을 생성합니다. 기본값은 8입니다. 더 알아보기 정보 참조PostgreSQL : 문서 : 9.3 : 명시 적 조인 조항으로 젠 토토 제어.
이 값을 다음으로 설정 중geqo_threshold또는 그 이상이 GEQO 플래너의 사용을 트리거할 수 있으며, 그 결과 최적이 아닌 계획. 참조섹션 18.7.3.
계획자는 명시적인 내용을 다시 작성합니다가입구조물(제외전체 조인s)를 목록으로 의발신항목 목록이 더 이상 없을 때마다 이보다 많은 항목이 발생합니다. 값이 작을수록 계획이 줄어듭니다. 시간이 걸리지만 열등한 무지개 토토 계획이 생성될 수 있습니다.
기본적으로 이 변수는 다음과 동일하게 설정됩니다.from_collapse_limit, 이는 대부분의 경우에 적합합니다. 사용합니다. 1로 설정하면 명시적인 재정렬이 방지됩니다.가입s. 따라서 명시적인 조인 순서는 쿼리에 지정된 실제 순서는 관계가 결합됩니다. 쿼리 플래너가 항상 그런 것은 아니기 때문에 최적의 조인 순서를 선택하면 고급 사용자가 선택할 수 있습니다. 일시적으로 이 변수를 1로 설정한 다음 조인 순서를 지정합니다. 그들은 명시적으로 원합니다. 자세한 내용은 참조섹션 14.3.
이 값을 다음으로 설정 중geqo_threshold또는 그 이상이 GEQO 플래너의 사용을 트리거할 수 있으며, 그 결과 최적이 아닌 계획. 참조섹션 18.7.3.
| 이전 | 배트맨 토토 : 문서 : 9.3 : 배트맨 토토 9.3.25 문서화 | 다음 |
| 복제 | 위로 | 오류 보고 및 로깅 |