19.7. 롤 토토 계획#

19.7.1. 플래너 메소드 구성#

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

enable_async_append(부울) #

롤 토토 플래너의 비동기 인식 부속 계획 유형 사용을 활성화 또는 비활성화합니다. 기본값은on.

enable_bitmapscan(부울) #

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

enable_gathermerge(부울) #

롤 토토 플래너의 수집 병합 계획 유형 사용을 활성화 또는 비활성화합니다. 기본값은on.

enable_group_by_reording(부울) #

롤 토토 플래너가 제공 할 계획을 생성하는 경우그룹 by키는 인덱스 스캔과 같은 계획의 자식 노드 키의 순서대로 정렬되었습니다. 비활성화되면 롤 토토 플래너는와 함께 계획을 생성합니다.그룹 by키는 일치하도록 분류되었습니다주문 by조항이있는 경우. 활성화되면 플래너는보다 효율적인 계획을 제작하려고합니다. 기본값은입니다.on.

enable_hashagg(부울) #

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

enable_hashjoin(부울) #

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

enable_incremental_sort(부울) #

롤 토토 플래너의 증분 정렬 단계 사용을 활성화 또는 비활성화합니다. 기본값은on.

enable_indexscan(부울) #

롤 토토 플래너의 인덱스 스캔 및 인덱스 전용 스캔 플랜 유형 사용을 활성화 또는 비활성화합니다. 기본값은on. 또한 참조enable_indexonlyscan.

enable_indexonlyscan(부울) #

롤 토토 플래너의 색인 전용 스캔 플랜 유형 사용을 활성화 또는 비활성화합니다 (참조PostgreSQL : 문서 : 17 : 11.9. 스포츠 토토 사이트 전용 스캔 및 스포츠 토토 사이트 커버). 기본값은on. 그만큼enable_indexscan롤 토토 플래너가 인덱스 전용 스캔을 고려하도록 설정을 활성화해야합니다.

enable_material(부울) #

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

enable_memoize(부울) #

쿼리 플래너의 중첩 루프 조인 내부의 매개 변수 스캔 결과 캐싱 결과를위한 메모 화 계획 사용을 활성화 또는 비활성화합니다. 이 계획 유형을 사용하면 현재 매개 변수의 결과가 이미 캐시에있을 때 기본 계획에 대한 스캔을 건너 뛸 수 있습니다. 새로운 항목에 더 많은 공간이 필요할 때 캐시에서 덜 일반적으로 찾아 보면 결과가 퇴거 될 수 있습니다. 기본값은on.

enable_mergejoin(부울) #

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

enable_nestloop(부울) #

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

enable_parallel_append(부울) #

롤 토토 플래너의 병렬 인식 부속 계획 유형 사용을 활성화 또는 비활성화합니다. 기본값은on.

enable_parallel_hash(부울) #

롤 토토 플래너의 병렬 해시와 함께 해시-조인 플랜 유형 사용을 활성화 또는 비활성화합니다. 해시 조명 계획도 활성화되지 않은 경우에는 영향을 미치지 않습니다. 기본값은on.

enable_partition_pruning(부울) #

롤 토토 계획에서 파티션 된 테이블의 파티션을 제거 할 수있는 롤 토토 플래너의 능력을 활성화 또는 비활성화합니다. 또한 롤 토토 실행자가 롤 토토 실행 중에 파티션을 제거 할 수있는 롤 토토 계획을 생성 할 수있는 플래너의 롤 토토 플랜을 생성하는 능력을 제어합니다. 기본값은on. 보다섹션 5.12.4자세한 내용.

enable_partitionwise_join(부울) #

쿼리 플래너의 파티션 타이 조인 사용을 활성화 또는 비활성화하여 일치하는 파티션에 결합하여 파티션 된 테이블 사이의 조인을 수행 할 수 있습니다. 파티션 넥타이 결합은 현재 조인 조건에 모든 파티션 키가 포함 된 경우에만 적용되며, 이는 동일한 데이터 유형이어야하며 일대일 일치하는 하위 파티션 세트가 있어야합니다. 이 설정이 활성화되면 메모리 사용이 제한되는 노드 수work_mem최종 계획에 나타나는 것은 스캔되는 파티션 수에 따라 선형으로 증가 할 수 있습니다. 이로 인해 롤 토토 실행 중에 전체 메모리 소비가 크게 증가 할 수 있습니다. 롤 토토 계획은 메모리 및 CPU 측면에서 훨씬 비싸게됩니다. 기본값은입니다.OFF.

enable_partitionwise_aggregate(부울) #

롤 토토 플래너의 파티션 적 그룹화 또는 집계 사용을 활성화 또는 비활성화하여 각 파티션에 대해 분할 된 테이블의 그룹화 또는 집계를 개별적으로 수행 할 수 있습니다. 인 경우그룹 by조항에는 파티션 키가 포함되어 있지 않으며, 부분 집계 만 파티션 기준으로 수행 할 수 있으며 나중에 마무리를 수행해야합니다. 이 설정이 활성화되면 메모리 사용이 제한되는 노드 수work_mem최종 계획에 나타나는 것은 스캔되는 파티션 수에 따라 선형으로 증가 할 수 있습니다. 이로 인해 롤 토토 실행 중에 전체 메모리 소비가 크게 증가 할 수 있습니다. 롤 토토 계획은 메모리 및 CPU 측면에서 훨씬 비싸게됩니다. 기본값은입니다.OFF.

enable_presorted_aggregate(부울) #

Query Planner가 롤 토토의 순서대로 필수로 제공되는 행을 제공 할 계획을 생성하는 경우 컨트롤주문 by / 별도의집계 함수. 롤 토토 플래너는 비활성화되면 an을 포함하는 각 집계 함수의 집계를 수행하기 전에 항상 executor가 정렬을 수행 해야하는 계획을 생성합니다.주문 by또는별도의절. 활성화되면 플래너는 집계에 필요한 순서대로 제도되는 집계 함수에 입력을 제공하는보다 효율적인 계획을 생성하려고합니다. 기본값은입니다.on.

enable_seqscan(부울) #

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

enable_sort(부울) #

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

enable_tidscan(부울) #

쿼리 플래너의 사용을 활성화 또는 비활성화합니다TID스캔 계획 유형. 기본값은on.

19.7.2. 플래너 비용 상수#

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

Note

불행히도 비용 변수에 대한 이상적인 값을 결정하는 잘 정의 된 방법은 없습니다. 그들은 특정 설치가 수신 할 쿼리의 전체 혼합에 비해 평균으로 가장 잘 취급됩니다. 이것은 단지 몇 가지 실험에 기초하여 변경하는 것이 매우 위험하다는 것을 의미합니다.

SEQ_PAGE_COST(플로팅 포인트) #

일련의 순차적 인 페치의 일부인 디스크 페이지 페치 비용에 대한 플래너의 추정치를 설정합니다. 기본값은 1.0입니다. 이 값은 같은 이름의 테이블 스페이스 매개 변수를 설정하여 특정 테이블 스페이스의 테이블 및 인덱스에 대해 재정의 할 수 있습니다 (참조테이블 스페이스 변경).

random_page_cost(플로팅 포인트) #

비 순차적으로 가져온 디스크 페이지의 비용에 대한 플래너의 추정치를 설정합니다. 기본값은 4.0입니다. 이 값은 같은 이름의 테이블 스페이스 매개 변수를 설정하여 특정 테이블 스페이스의 테이블 및 인덱스에 대해 재정의 할 수 있습니다 (참조테이블 스페이스 대체).

이 값 감소SEQ_PAGE_COST시스템이 인덱스 스캔을 선호하게합니다. 그것을 높이면 인덱스 스캔이 비교적 비싸게 보일 것입니다. CPU 비용에 대한 디스크 I/O 비용의 중요성을 변경하기 위해 두 값을 함께 모으거나 낮출 수 있습니다.

기계식 디스크 스토리지에 대한 랜덤 액세스는 일반적으로 4 배의 순차적 액세스보다 훨씬 비쌉니다. 그러나 인덱스 판독 값과 같이 디스크에 대한 랜덤 액세스의 대부분이 캐시에있는 것으로 가정하기 때문에 더 낮은 기본값이 사용됩니다 (4.0). 기본값은 임의의 액세스를 순차적보다 40 배 느린 것으로 모델링하는 것으로 생각할 수 있으며, 무작위 판독의 90%가 캐시 될 것으로 예상합니다.

90% 캐시 속도가 작업 부하에 대한 잘못된 가정이라고 생각되면 Random_Page_Cost를 늘려 임의의 스토리지 읽기의 실제 비용을 더 잘 반영 할 수 있습니다. 이에 따라 데이터베이스가 전체 서버 메모리보다 작은 경우 데이터베이스가 완전히 캐시에있을 가능성이있는 경우 Random_Page_Cost 감소가 적절할 수 있습니다. 순차적으로 무작위 판독 비용이 낮은 스토리지, 예를 들어, 솔리드 스테이트 드라이브는 또한 random_page_cost에 대한 낮은 값으로 더 나은 모델링 될 수 있습니다 (예 :1.1.

시스템에서 설정할 수는 있지만random_page_costSEQ_PAGE_COST, 그렇게하는 것은 물리적으로 합리적이지 않습니다. 그러나 데이터베이스가 RAM으로 완전히 캐시되는 경우 동일하게 설정하는 것이 합리적입니다.이 경우 시퀀스에서 페이지를 터치 할 수있는 벌칙이 없기 때문입니다. 또한, 크게 가축 된 데이터베이스에서는 이미 RAM으로 페이지를 가져 오는 비용이 일반적으로보다 훨씬 작기 때문에 CPU 매개 변수에 비해 두 값을 모두 낮추어야합니다..

CPU_TUPLE_COST(플로팅 포인트) #

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

cpu_index_tuple_cost(플로팅 포인트) #

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

cpu_operator_cost(플로팅 포인트) #

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

parallel_setup_cost(플로팅 포인트) #

평행 작업자 프로세스를 시작하는 비용에 대한 플래너의 추정치를 설정합니다. 기본값은 1000입니다.

parallel_tuple_cost(플로팅 포인트) #

한 튜플을 병렬 작업자 프로세스에서 다른 프로세스로 전송하는 비용에 대한 플래너의 추정치를 설정합니다. 기본값은 0.1입니다.

min_parallel_table_scan_size(정수) #

병렬 스캔을 고려하기 위해 스캔 해야하는 최소 금액의 테이블 데이터를 설정합니다. 병렬 순차적 스캔의 경우 스캔 한 테이블 데이터의 양은 항상 테이블 크기와 같지만 인덱스를 사용하면 스캔 한 테이블 데이터의 양은 일반적으로 적습니다. 이 값이 단위없이 지정되면 블록으로 간주됩니다.blcksz바이트, 일반적으로 8kb. 기본값은 8 메가 바이트 (입니다.8MB).

min_parallel_index_scan_size(정수) #

병렬 스캔을 고려하기 위해 스캔 해야하는 최소한의 인덱스 데이터를 설정합니다. 병렬 인덱스 스캔은 일반적으로 전체 인덱스를 터치하지 않습니다. 플래너가 실제로 관련된 스캔에 의해 접촉 할 것이라고 믿는 페이지 수입니다. 이 매개 변수는 또한 특정 인덱스가 병렬 진공에 참여할 수 있는지 여부를 결정하는 데 사용됩니다. 보다진공. 이 값이 단위없이 지정되면 블록으로 간주됩니다.blcksz바이트, 일반적으로 8kb. 기본값은 512 킬로 바이트 (입니다.512KB).

exply_cache_size(정수) #

단일 쿼리에서 사용할 수있는 디스크 캐시의 유효 크기에 대한 플래너의 가정을 설정합니다. 이것은 지수 사용 비용의 추정치에 반영됩니다. 값이 높을수록 인덱스 스캔이 사용될 가능성이 높아지고 값이 낮아서 순차적 스캔이 더 많이 사용될 가능성이 높아집니다. 이 매개 변수를 설정할 때는 두 가지를 고려해야합니다PostgreSQL의 공유 버퍼 및에 사용될 커널 디스크 캐시의 부분PostgreSQL데이터 파일이지만 일부 데이터는 두 곳 모두에 존재할 수 있습니다. 또한 사용 가능한 공간을 공유해야하므로 다른 테이블에 예상되는 동시 롤 토토 수를 고려하십시오. 이 매개 변수는에 의해 할당 된 공유 메모리의 크기에 영향을 미치지 않습니다.PostgreSQL, 커널 디스크 캐시를 예약하지도 않습니다. 추정 목적으로 만 사용됩니다. 시스템은 또한 데이터가 쿼리 간의 디스크 캐시에 남아 있다고 가정하지 않습니다. 이 값이 단위없이 지정되면 블록으로 간주됩니다.blcksz바이트, 일반적으로 8kb. 기본값은 4 기가 바이트 (입니다.4GB). (만약에blcksz8KB가 아니며 기본값은 비례 적으로 비례합니다.)

jit_above_cost(플로팅 포인트) #

활성화 된 JIT 컴파일이 활성화되는 쿼리 비용을 설정합니다 (참조PostgreSQL : 문서 : 17 : 30 장. 토토 꽁 머니 편집 (JIT)). 실행할 수 있는jit비용 계획 시간이지만 쿼리 실행을 가속화 할 수 있습니다. 이것을 설정-1JIT 컴파일을 비활성화합니다. 기본값은100000.

jit_inline_above_cost(플로팅 포인트) #

JIT 컴파일이 기능 및 연산자를 인라인으로 시도하는 쿼리 비용을 설정합니다. 인라인은 계획 시간을 추가하지만 실행 속도를 향상시킬 수 있습니다. 이것을보다 적은 것으로 설정하는 것은 의미가 없습니다jit_above_cost. 이것을 설정-1Inlining을 비활성화합니다. 기본값은500000.

jit_optimize_above_cost(플로팅 포인트) #

JIT 컴파일이 비싼 최적화를 적용하는 쿼리 비용을 설정합니다. 이러한 최적화는 계획 시간을 추가하지만 실행 속도를 향상시킬 수 있습니다. 이것을보다 적은 것으로 설정하는 것은 의미가 없습니다jit_above_costjit_inline_above_cost. 이것을 설정-1비싼 최적화를 비활성화합니다. 기본값은500000.

19.7.3. 유전자 롤 토토 최적화#

GEQO (Genetic Query Optimizer)는 휴리스틱 검색을 사용하는 쿼리 계획을 수행하는 알고리즘입니다. 이는 일반적인 철저한 검색 알고리즘에서 발견 한 것보다 열등한 계획을 생성하는 비용으로 복잡한 쿼리 (많은 관계에 합류하는 사람들) 계획 시간이 줄어 듭니다. 자세한 내용은 참조와이즈 토토 : 문서 : 17 : 60 장. 유전자 쿼리 옵티마이저.

geqo(부울) #

유전자 쿼리 최적화를 활성화 또는 비활성화합니다. 이것은 기본적으로 켜져 있습니다. 일반적으로 생산에서 끄지 않는 것이 가장 좋습니다. 그만큼geqo_threshold변수 GEQO의보다 세분화 된 제어를 제공합니다.

geqo_threshold(정수) #

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

geqo_effort(정수) #

GEQO의 계획 시간과 쿼리 계획 품질 사이의 절충을 제어합니다. 이 변수는 1에서 10까지의 정수 여야합니다. 기본값은 5입니다. 값이 클수록 쿼리 계획에 소요되는 시간이 증가하지만 효율적인 쿼리 계획이 선택 될 가능성도 높아집니다.

geqo_effort실제로 직접 아무것도하지 않습니다. GEQO 동작에 영향을 미치는 다른 변수의 기본값을 계산하는 데만 사용됩니다 (아래 설명). 원하는 경우 다른 매개 변수를 대신 손으로 설정할 수 있습니다.

geqo_pool_size(Integer) #

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

geqo_generations(정수) #

GEQO가 사용하는 세대 수를 제어합니다. 이는 알고리즘의 반복 수입니다. 하나 이상이어야하며 유용한 값은 풀 크기와 같은 범위에 있습니다. 0으로 설정되면 (기본 설정), 적절한 값이에 따라 선택됩니다geqo_pool_size.

geqo_selection_bias(플로팅 포인트) #

GEQO가 사용하는 선택 바이어스를 제어합니다. 선택 바이어스는 모집단 내에서 선택적 압력입니다. 값은 1.50 ~ 2.00 일 수 있습니다. 후자는 기본입니다.

geqo_seed(플로팅 포인트) #

조인 순서 검색 공간을 통해 임의의 경로를 선택하기 위해 GEQO가 사용하는 랜덤 번호 생성기의 초기 값을 제어합니다. 값은 0 (기본값)에서 1까지 다양합니다. 값을 변경하면 탐색 된 조인 경로 세트가 변경되어 더 나은 경로를 찾을 수 있습니다.

19.7.4. 기타 플래너 옵션#

default_statistics_target(정수) #

열 특정 대상이없는 테이블 열에 대한 기본 통계 대상 설정ALTER 테이블 세트 통계. 값 큰 값이 필요한 시간을 증가시킵니다분석그러나 플래너의 추정 품질을 향상시킬 수 있습니다. 기본값은 100입니다.의 통계 사용에 대한 자세한 내용은PostgreSQL롤 토토 플래너, 참조토토 사이트 추천 _.

제약 _exclusion(enum) #

롤 토토 플래너의 테이블 제약 조건 사용을 제어하여 롤 토토를 최적화합니다. 허용 값제약 _exclusionareon(모든 테이블에 대한 제약 조건 검사),off(제약 조건을 조사하지 않음) 및파티션(상속 자식 테이블 및에 대해서만 제약 조건을 검사하십시오.Union All서브 쿼리).파티션는 기본 설정입니다. 그것은 종종 전통적인 상속 트리와 함께 공연을 개선하기 위해 사용됩니다.

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

테이블 PARIN (Key Integer, ...);
테이블 child1000을 만듭니다 (확인 (1000과 1999 사이의 키)) 상속 (부모);
테이블 child2000을 만듭니다 (확인 (2000 년에서 2999 년 사이의 키)) 상속 (부모);
...
선택 *에서 key = 2400;에서 부모 중에서 선택하십시오.

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

현재, 제약 제외는 상속 트리를 통해 테이블 ​​파티셔닝을 구현하는 데 종종 사용되는 경우에만 기본적으로 만 가능합니다. 모든 테이블에 켜면 간단한 쿼리에서 눈에 띄는 추가 계획 오버 헤드가 부과되며, 대부분 간단한 쿼리에 대한 이점이 없습니다. 전통적인 상속을 사용하여 분할 된 테이블이없는 경우 완전히 끄는 것이 좋습니다. (분할 된 테이블의 동등한 기능은 별도의 매개 변수로 제어됩니다.enable_partition_pruning.)

참조섹션 5.12.5파티셔닝 구현을 위해 제약 제외 사용에 대한 자세한 내용은

cursor_tuple_fraction(플로팅 포인트) #

검색 될 커서의 행의 비율에 대한 플래너의 추정치를 설정합니다. 기본값은 0.1입니다. 이 설정의 작은 값은 플래너를 사용하여 바이어스빠른 시작커서에 대한 계획은 모든 행을 모두 가져 오는 데 오랜 시간이 걸리는 동안 처음 몇 행을 빨리 검색합니다. 더 큰 값은 총 추정 시간에 더 중점을 둡니다. 최대 1.0의 최대 설정에서 커서는 총 추정 시간 만 고려할 때 첫 번째 행이 얼마나 빨리 전달 될 수 있는지를 고려할 때 일반 쿼리와 똑같이 계획됩니다.

from_collapse_limit(정수) #

플래너는 결과가있는 경우 하위 롤 토토를 상단 롤 토토로 병합합니다From목록은이 많은 항목을 가질 수 없습니다. 더 작은 값은 계획 시간을 줄이지 만 열등한 쿼리 계획을 수립 할 수 있습니다. 기본값은 8입니다. 자세한 내용은 참조PostgreSQL : 문서 : 17 : 14.3. 명백한 토토 사이트 조항으로 플래너 제어.

이 값 설정geqo_threshold또는 그 이상은 GEQO 플래너의 사용을 트리거하여 최적이 아닌 계획을 초래할 수 있습니다. 보다섹션 19.7.3.

JIT(부울) #

결정jit컴파일은를 사용할 수 있습니다.PostgreSQL, 사용 가능한 경우 (참조PostgreSQL : 문서 : 17 : 30 장. 토토 꽁 머니 편집 (JIT)). 기본값은on.

join_collapse_limit(Integer) #

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

기본적 으로이 변수는와 동일하게 설정됩니다.from_collapse_limit, 대부분의 용도에 적합합니다. 1으로 설정하면 명시 적의 재정렬이 방지됩니다Joins. 따라서 쿼리에 지정된 명시 적 조인 순서는 관계가 결합되는 실제 순서가됩니다. 쿼리 플래너가 항상 최적의 조인 순서를 선택하지는 않기 때문에 고급 사용자는이 변수를 일시적으로 설정하도록 선택한 다음 원하는 조인 순서를 명시 적으로 지정할 수 있습니다. 자세한 내용은 참조PostgreSQL : 문서 : 17 : 14.3. 명백한 토토 사이트 조항으로 플래너 제어.

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

plan_cache_mode(enum) #

준비된 진술 (예 : PL/PGSQL에 의해 명시 적으로 준비되거나 암시 적으로 생성됨)은 사용자 정의 또는 일반 계획을 사용하여 실행할 수 있습니다. 특정 매개 변수 값 세트를 사용하여 각 실행에 대해 사용자 정의 계획이 새롭게 이루어 지지만 일반적인 계획은 매개 변수 값에 의존하지 않으며 실행에 따라 재사용 할 수 있습니다. 따라서 일반적인 계획을 사용하면 계획 시간이 절약되지만 이상적인 계획이 매개 변수 값에 크게 의존하면 일반적인 계획이 비효율적 일 수 있습니다. 이러한 옵션 간의 선택은 일반적으로 자동으로 이루어 지지만로 재정의 할 수 있습니다.plan_cache_mode. 허용 값은입니다.auto(기본값),Force_Custom_planForce_Generic_plan. 이 설정은 캐시 된 계획이 준비 될 때가 아니라 실행 될 때 고려됩니다. 자세한 내용은 참조준비.

recursive_worktable_factor(플로팅 포인트) #

a의 평균 크기에 대한 플래너의 평균 크기에 대한 플래너의 추정치를 설정합니다재귀 롤 토토55465_5569110.0. 와 같은 작은 값1.0재귀가 낮을 때 도움이 될 수 있습니다팬 아웃예를 들어 가장 짧은 경로 쿼리에서와 같이 한 단계에서 다음 단계로. 그래프 분석 쿼리는 더 큰 값보다 큰 값으로 이익을 얻을 수 있습니다.

정정 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면