플래너는 쿼리와 관련된 작업을 다음 중 하나로 분류합니다.사설 토토 사이트 안전, 사설 토토 사이트 제한됨또는사설 토토 사이트 안전하지 않음. 사설 토토 사이트 안전 작업은 병렬 쿼리 사용과 충돌하지 않는 작업입니다. 병렬 제한 작업은 병렬 작업자에서는 수행할 수 없지만 병렬 쿼리를 사용하는 동안 리더에서는 수행할 수 있는 작업입니다. 따라서 병렬 제한 작업은 a 이하에서는 절대 발생할 수 없습니다.집결또는집합 병합노드이지만 해당 노드를 포함하는 계획의 다른 곳에서 발생할 수 있습니다. 안전하지 않은 사설 토토 사이트 작업은 사설 토토 사이트 쿼리가 사용 중인 동안에는 수행할 수 없으며 리더에서도 수행할 수 없습니다. 쿼리에 안전하지 않은 사설 토토 사이트 항목이 포함되어 있으면 해당 쿼리에 대해 사설 토토 사이트 쿼리가 완전히 비활성화됩니다.
다음 작업은 항상 병렬로 제한됩니다:
공통 테이블 표현식(CTE) 스캔.
임시 테이블을 스캔합니다.
외부 데이터 래퍼에 다음이 없는 경우 외부 테이블 스캔IsForeignScanParallelSafe그렇지 않은 경우를 나타내는 API.
다음을 수행할 노드를 계획하세요.InitPlan첨부되었습니다.
상관관계를 참조하는 계획 노드하위 계획.
플래너는 사용자 정의 함수 또는 집계가 사설 토토 사이트 안전, 병렬 제한 또는 병렬 비안전인지 자동으로 결정할 수 없습니다. 이를 위해서는 함수가 수행할 수 있는 모든 작업을 예측해야 하기 때문입니다. 일반적으로 이는 정지 문제와 동일하므로 불가능합니다. 수행할 수 있는 간단한 기능의 경우에도 비용이 많이 들고 오류가 발생하기 쉬우므로 시도하지 않습니다. 대신, 달리 표시하지 않는 한 모든 사용자 정의 함수는 사설 토토 사이트 안전하지 않은 것으로 간주됩니다. 사용시함수 생성또는함수 변경, 표시는 다음을 지정하여 설정할 수 있습니다.사설 토토 사이트 안전, 사설 토토 사이트 제한됨또는사설 토토 사이트 안전하지 않음적절하게. 사용시집합 생성, 그병행옵션은 다음으로 지정할 수 있습니다.안전함, 제한됨또는안전하지 않음해당 값으로.
함수와 집계는 표시되어야 합니다.사설 토토 사이트 안전하지 않음그들이 데이터베이스에 쓰고, 시퀀스에 액세스하고, 트랜잭션 상태를 일시적으로 변경하는 경우(예: PL/pgSQL 함수를 설정합니다.예외오류 포착을 차단)하거나 설정을 지속적으로 변경하세요. 마찬가지로 함수도 표시되어야 합니다.사설 토토 사이트 제한됨임시 테이블, 클라이언트 연결 상태, 커서, 준비된 명령문 또는 시스템이 워커 간에 동기화할 수 없는 기타 백엔드 로컬 상태에 액세스하는 경우. 예를 들어,세트 시드그리고무작위이 마지막 이유로 사설 토토 사이트이 제한됩니다.
일반적으로 함수가 제한되거나 안전하지 않을 때 안전한 것으로 레이블이 지정되거나 실제로 안전하지 않을 때 제한됨으로 레이블이 지정되면 병렬 쿼리에서 사용할 때 오류가 발생하거나 잘못된 응답이 생성될 수 있습니다. C 언어 함수는 이론적으로 레이블이 잘못 지정되면 완전히 정의되지 않은 동작을 보일 수 있습니다. 시스템이 임의의 C 코드로부터 자신을 보호할 수 있는 방법이 없기 때문입니다. 그러나 대부분의 경우 결과는 다른 함수보다 나쁘지 않을 것입니다. 의심스러운 경우 함수에 다음과 같이 라벨을 붙이는 것이 가장 좋습니다.안전하지 않음.
병렬 작업자 내에서 실행된 함수가 예를 들어 쿼리에서 참조되지 않은 테이블을 쿼리하여 리더가 보유하지 않은 잠금을 획득하는 경우 해당 잠금은 트랜잭션이 끝나지 않고 작업자 종료 시 해제됩니다. 이 작업을 수행하는 함수를 작성하고 이 동작 차이가 중요하다면 다음과 같은 함수를 표시하세요.사설 토토 사이트 제한됨리더에서만 실행되도록 합니다.
쿼리 플래너는 더 나은 계획을 얻기 위해 쿼리에 포함된 병렬 제한 함수 또는 집계의 평가 연기를 고려하지 않습니다. 예를 들어, 만약 a어디에서13746_14081어디절 위에서 발생하도록집결노드. 하지만 기획자는 이런 일을 하지 않습니다.