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

18.7. 스포츠 토토 결과 계획

18.7.1. 플래너 메소드 구성

이 구성 매개 변수는 스포츠 토토 결과 최적화기가 선택한 스포츠 토토 결과 계획에 영향을 미치는 조잡한 방법을 제공합니다. 특정 스포츠 토토 결과에 대한 Optimizer가 선택한 기본 계획이 최적이 아닌 경우 A임시솔루션은 이러한 구성 매개 변수 중 하나를 사용하여 Optimizer가 다른 계획을 선택하도록하는 것입니다. 최적화기가 선택한 계획의 품질을 향상시키는 더 나은 방법에는 플래너 비용 상수 조정이 포함됩니다 (참조섹션 18.7.2), running스포츠 토토 사이트 PostgreSQL : 문서 : 9.4 : Analyze수동으로, 값의 가치가 높아짐default_statistics_target구성 매개 변수 및 사용을 사용하여 특정 열에 수집 된 통계량 증가Alter Table Set Statistics.

enable_bitmapscan (부울)

스포츠 토토 결과 플래너의 비트 맵 스캔 플랜 유형 사용을 활성화 또는 비활성화합니다. 기본값은on.

enable_hashagg (부울)

스포츠 토토 결과 플래너의 해시 응집 계획 유형 사용을 활성화 또는 비활성화합니다. 기본값은on.

enable_hashjoin (부울)

스포츠 토토 결과 플래너의 해시 조명 계획 유형 사용을 활성화 또는 비활성화합니다. 기본값은on.

enable_indexscan (부울)

스포츠 토토 결과 플래너의 인덱스 스캔 플랜 유형 사용을 활성화 또는 비활성화합니다. 기본값은on.

enable_indexonlyscan (부울)

스포츠 토토 결과 플래너의 인덱스 전용 스캔 플랜 유형 사용을 활성화 또는 비활성화합니다. 기본값은on.

enable_material (부울)

스포츠 토토 결과 플래너의 구체화 사용을 활성화 또는 비활성화합니다. 구체화를 완전히 억제하는 것은 불가능하지만,이 변수를 끄면 플래너가 정확성에 필요한 경우를 제외하고 구체화 된 노드를 삽입하지 못하게합니다.on.

enable_mergejoin (부울)

스포츠 토토 결과 플래너의 병합 조명 계획 유형 사용을 활성화 또는 비활성화합니다. 기본값은on.

enable_nestloop (부울)

스포츠 토토 결과 플래너의 중첩 루프 조인 계획 사용을 활성화 또는 비활성화합니다. 중첩 루프 조인을 완전히 억제하는 것은 불가능하지만이 변수를 끄면 플래너가 다른 방법이있는 경우 플래너를 사용하지 못하게합니다.on.

enable_seqscan (부울)

스포츠 토토 결과 플래너의 순차적 스캔 계획 유형 사용을 활성화 또는 비활성화합니다. 순차적 스캔을 완전히 억제하는 것은 불가능하지만,이 변수를 끄면 플래너가 다른 방법이있는 경우 플래너를 사용하지 못하게합니다.on.

enable_sort (부울)

스포츠 토토 결과 플래너의 명시 적 정렬 단계 사용을 활성화 또는 비활성화합니다. 명시적인 정렬을 완전히 억제하는 것은 불가능하지만,이 변수를 끄면 플래너가 다른 방법이있는 경우 플래너를 사용하지 못하게합니다.on.

enable_tidscan (부울)

스포츠 토토 결과 플래너의 사용을 활성화 또는 비활성화합니다.tid스캔 계획 유형. 기본값은on.

18.7.2. 플래너 비용 상수

the비용이 섹션에 설명 된 변수는 임의의 척도로 측정됩니다. 상대 값 만 중요하므로 동일한 요소로 모두 또는 아래로 확장하면 플래너의 선택이 변경되지 않습니다.seq_page_cost전통적으로 설정되어1.0그리고 다른 비용 변수는이를 참조하여 설정됩니다. 그러나 특정 기계의 밀리 초의 실제 실행 시간과 같이 원하는 경우 다른 규모를 사용할 수 있습니다.

참고 :불행히도 비용 변수에 대한 이상적인 값을 결정하는 잘 정의 된 방법이 없습니다. 그들은 특정 설치가 수신 할 쿼리의 전체 혼합에 비해 평균으로 가장 잘 취급됩니다.

seq_page_cost (플로팅 포인트)

일련의 순차적 인 페치의 일부인 디스크 페이지 페치 비용에 대한 플래너의 추정치를 설정합니다. 기본값은 1.0입니다.PostgreSQL :).

random_page_cost (플로팅 포인트)

비 순위행 디스크 페이지의 비용에 대한 플래너의 추정치를 설정합니다. 기본값은 4.0입니다.PostgreSQL :).

이 값 감소seq_page_cost시스템이 인덱스 스캔을 선호하게됩니다. 그것을 높이면 인덱스 스캔이 비교적 비싸게 보일 것입니다.

기계식 디스크 스토리지에 대한 랜덤 액세스는 일반적으로 4 배의 순차적 액세스보다 훨씬 비쌉니다. 그러나 인덱스 판독 값과 같이 디스크에 대한 랜덤 액세스의 대부분이 캐시에있는 것으로 가정하기 때문에 더 낮은 기본값이 사용됩니다 (4.0).

90% 캐시 속도가 작업 부하에 대한 잘못된 가정이라고 생각되면 Random_Page_Cost를 증가시켜 임의의 스토리지 읽기의 실제 비용을 더 잘 반영 할 수 있습니다. 이에 따라 데이터베이스가 전체 서버 메모리보다 작은 경우 데이터베이스가 완전히 캐시에있을 가능성이있는 경우 Random_Page_Cost 감소가 적절할 수 있습니다.

팁 :시스템에서 설정할 수는 있지만random_page_costseq_page_cost, 그렇게하는 것은 물리적으로 합리적이지 않습니다. 그러나 데이터베이스가 RAM으로 완전히 캐시되는 경우 동일하게 설정하는 것이 합리적입니다.이 경우 시퀀스에서 페이지를 터치 할 수있는 벌칙이 없기 때문입니다.

CPU_TUPLE_COST (플로팅 포인트)

쿼리 중 각 행을 처리하는 비용에 대한 플래너의 추정치를 설정합니다. 기본값은 0.01입니다.

cpu_index_tuple_cost (플로팅 포인트)

인덱스 스캔 중 각 인덱스 항목을 처리하는 비용에 대한 플래너의 추정치를 설정합니다. 기본값은 0.005입니다.

cpu_operator_cost (플로팅 포인트)

쿼리 중에 실행 된 각 연산자 또는 기능 처리 비용에 대한 플래너의 추정치를 설정합니다. 기본값은 0.0025입니다.

exply_cache_size (정수)

단일 쿼리에 사용 가능한 디스크 캐시의 유효 크기에 대한 플래너의 가정을 설정합니다. 이것은 지수 사용 비용의 추정치에 반영됩니다.PostgreSQL의 공유 버퍼와 사용될 커널 디스크 캐시의 일부PostgreSQL데이터 파일이지만 일부 데이터는 두 곳 모두에 존재할 수 있습니다. 또한 사용 가능한 공간을 공유해야하므로 다른 테이블에 예상되는 동시 스포츠 토토 결과 수를 고려하십시오.PostgreSQL, 커널 디스크 캐시를 예약하지도 않습니다. 추정 목적으로 만 사용됩니다.4GB).

18.7.3. 유전자 스포츠 토토 결과 최적화

GEQO (Genetic Query Optimizer)는 휴리스틱 검색을 사용하는 쿼리 계획을 수행하는 알고리즘입니다. 이는 일반적인 철저한 검색 알고리즘에서 발견 한 것보다 열등한 계획을 생성하는 비용으로 복잡한 쿼리 (많은 관계에 합류하는 사람들) 계획 시간이 줄어 듭니다.54 장.

geqo (부울)

유전자 스포츠 토토 결과 최적화를 활성화 또는 비활성화합니다. 이것은 기본적으로 켜져 있습니다.geqo_threshold변수 GEQO의보다 세분화 된 제어를 제공합니다.

geqo_threshold (정수)

유전자 스포츠 토토 결과 최적화를 사용하여 최소한이 많은 스포츠 토토 결과를 계획하십시오From관련된 항목. (A전체 외부 조인구성 수는 하나만 계산합니다Fromitem.) 기본값은 12입니다. 더 간단한 스포츠 토토 결과의 경우 일반적으로 정기적이고 철저한 검색 플래너를 사용하는 것이 가장 좋습니다. 그러나 많은 테이블이있는 스포츠 토토 결과의 경우 철저한 검색이 너무 오래 걸리며, 종종 하위 최대 계획을 실행하는 것보다 오래 걸립니다. 따라서 스포츠 토토 결과 크기의 임계 값은 GEQO 사용을 관리하는 편리한 방법입니다.

geqo_effort (정수)

19799_20100

geqo_effort실제로 직접 아무것도하지 않습니다. GEQO 동작에 영향을 미치는 다른 변수의 기본값을 계산하는 데만 사용됩니다 (아래 설명).

geqo_pool_size (정수)

GEQO가 사용하는 풀 크기, 즉 유전자 집단의 개인 수를 제어합니다. 그것은 최소 2 개 이상이어야하며 유용한 값은 일반적으로 100 ~ 1000입니다. 0으로 설정되면 (기본 설정), 적절한 값은에 따라 선택됩니다geqo_effort및 스포츠 토토 결과의 테이블 수.

geqo_generations (정수)

GEQO가 사용하는 세대의 수를 제어합니다. 즉, 알고리즘의 반복 수입니다. 하나 이상이어야하며 유용한 값은 풀 크기와 같은 범위에 있습니다.geqo_pool_size.

geqo_selection_bias (플로팅 포인트)

GEQO가 사용하는 선택 바이어스를 제어합니다. 선택 바이어스는 모집단 내에서 선택적 압력입니다.

geqo_seed (플로팅 포인트)

조인 순서 검색 공간을 통해 임의의 경로를 선택하기 위해 GEQO가 사용하는 랜덤 번호 생성기의 초기 값을 제어합니다. 값은 0 (기본값)에서 1까지 다양합니다.

18.7.4. 기타 플래너 옵션

default_statistics_target (정수)

열 특정 대상이없는 테이블 열에 대한 기본 통계 대상 설정Alter Table Set Statistics. 값 큰 값이 필요한 시간을 증가시킵니다분석, 그러나 플래너의 추정 품질을 향상시킬 수 있습니다. 기본값은 100입니다.의 통계 사용에 대한 자세한 내용은PostgreSQL스포츠 토토 결과 플래너, 참조섹션 14.2.

제약 _exclusion (enum)

스포츠 토토 결과 플래너의 테이블 제약 조건 사용을 제어하여 스포츠 토토 결과를 최적화합니다. 허용 값제약 _exclusionareon(모든 테이블에 대한 제약 조건 검사),OFF(제약 조건을 조사하지 않음) 및파티션(상속 자식 테이블 및에 대해서만 제약 조건을 검사하십시오.Union All서브 쿼리).파티션기본 설정입니다. 성능을 향상시키기 위해 상속 및 분할 된 테이블과 함께 사용됩니다.

이 매개 변수가 특정 테이블에 허용되면 플래너는 스포츠 토토 결과 조건을 테이블과 비교합니다check제약 조건 및 조건이 제약 조건과 모순되는 스캐닝 테이블을 생략합니다. 예를 들어:

테이블 부모 (키 정수, ...);

제약 제외가 활성화 된이select스캔하지 않습니다Child1000전혀 성능 향상.

현재, 제약 제외는 기본적으로 테이블 파티셔닝을 구현하는 데 사용되는 경우에만 기본적으로 만 활성화됩니다. 모든 테이블에 켜면 간단한 쿼리에서 눈에 띄는 추가 계획 오버 헤드가 부과되며, 대부분 간단한 쿼리에 대한 이점이 없습니다.

참조섹션 5.9.4제약 제외 및 분할 사용에 대한 자세한 내용은

cursor_tuple_fraction (플로팅 포인트)

검색 될 커서의 행의 비율에 대한 플래너의 추정치를 설정합니다. 기본값은 0.1입니다."빠른 시작"커서 계획을 세우는데, 이는 모든 행을 모든 행을 가져 오는 데 오랜 시간이 걸리는 동안 처음 몇 행을 빨리 검색합니다. 더 큰 값은 총 추정 시간에 더 중점을 둡니다.

from_collapse_limit (정수)

플래너는 결과가있는 경우 하위 스포츠 토토 결과를 상단 스포츠 토토 결과로 병합합니다From목록은이 많은 항목을 가질 수 없습니다. 더 작은 값은 계획 시간을 줄이지 만 열등한 스포츠 토토 결과 계획을 수립 할 수 있습니다.섹션 14.3.

이 값 설정geqo_threshold또는 그 이상은 GEQO Planner의 사용을 유발하여 최적이 아닌 계획을 초래할 수 있습니다. 보다섹션 18.7.3.

join_collapse_limit (정수)

플래너는 명시 적으로 다시 작성합니다Join구조물 (제외전체 조인s) 목록으로의From항목이 많은 항목이 발생할 때마다 항목이 발생할 때마다 발생합니다. 더 작은 값은 계획 시간을 줄이지 만 스포츠 토토 결과 계획이 열등 할 수 있습니다.

기본적 으로이 변수는와 동일하게 설정됩니다.from_collapse_limit, 대부분의 용도에 적합합니다. 1으로 설정하면 명시 적의 재정렬이 방지됩니다Joins. 따라서 스포츠 토토 결과에 지정된 명시 적 조인 순서는 관계가 결합되는 실제 순서가됩니다.섹션 14.3.

이 값 설정geqo_threshold또는 그 이상은 GEQO Planner의 사용을 유발하여 최적이 아닌 계획을 초래할 수 있습니다. 보다섹션 18.7.3.