56.5. 외국 데이터 포장지에서의 행 토토 사이트 순위

FDW의 기본 스토리지 메커니즘에 해당 행의 동시 업데이트를 방지하기 위해 개별 행을 잠그는 개념이 있다면, FDW가 평범한상에서 사용하는 중심에 근사한 근사치를 사용하여 행하 레벨 토토 사이트 순위을 수행하는 것이 일반적으로PostgreSQL테이블. 이에 관련된 여러 고려 사항이 있습니다.

한 가지 중요한 결정은 수행 여부입니다.조기 토토 사이트 순위또는늦은 토토 사이트 순위. 초기 잠금시, 기저 스토어에서 처음 검색 될 때 행이 잠겨 있으며, 늦게 잠금하시면 행은 잠겨 있어야한다고 알려진 경우에만 잠겨 있습니다. (일부 행은 로컬로 점검 한 제한 또는 조건에 의해 폐기 될 수 있기 때문에 차이가 발생합니다.) 조기 토토 사이트 순위은 훨씬 간단하고 원격 상점으로의 추가 회전 트립을 피하지만 잠금 할 필요가없는 행을 잠금으로써 동시성을 줄이거 나 예기치 않은 교착 상태를 감소시킬 수 있습니다. 또한, 잠금 할 행을 나중에 고유하게 식별 할 수있는 경우에만 늦은 토토 사이트 순위이 가능합니다. 바람직하게는 행 식별자가 특정 버전의 행을 식별해야합니다.PostgreSQLTIDS DO.

기본적으로PostgreSQLFDW에 인터페이스 할 때 잠금 고려 사항을 무시하지만 FDW는 핵심 코드의 명시 적 지원없이 조기 토토 사이트 순위을 수행 할 수 있습니다. API 기능에 설명 된섹션 56.2.5에 추가 된PostgreSQL9.5, FDW가 원하는 경우 늦은 토토 사이트 순위을 사용하도록 허용합니다.

추가 고려 사항은입니다.Committed 읽기격리 모드,PostgreSQL일부 대상 튜플의 업데이트 된 버전에 대해 제한을 다시 확인하고 조건을 조정해야 할 수도 있습니다. 조정 조건을 다시 확인하려면 이전에 대상 튜플에 결합 된 비 표적 행의 사본을 다시 찾아야합니다. 표준으로 작업 할 때postgresql테이블, 이는 조인을 통해 투사 된 열 목록에 비 표적 테이블의 TID를 포함시킨 다음 필요할 때 비 표적 행을 다시 가져와서 수행합니다. 이 접근법은 조인 데이터 세트를 컴팩트하게 유지하지만 저렴한 리 페치 기능과 다시 가져올 행 버전을 고유하게 식별 할 수있는 TID가 필요합니다. 따라서 기본적으로 외국 테이블에 사용 된 접근 방식은 조인을 통해 투사 된 열 목록에 외국 테이블에서 가져온 전체 행의 사본을 포함시키는 것입니다. 이로 인해 FDW에 대한 특별한 요구는 없지만 병합 및 해시 조인의 성능이 줄어들 수 있습니다. 재 포장 요구 사항을 충족시킬 수있는 FDW는 첫 번째 방법으로이를 선택할 수 있습니다.

for업데이트또는삭제외국 테이블에서 권장됩니다.Foreignscan대상 테이블의 작동은 아마도를 통해 가져 오는 행에서 조기 토토 사이트 순위을 수행합니다업데이트 선택. FDW는 테이블이인지 여부를 감지 할 수 있습니다.업데이트/삭제릴리스를 비교하여 계획 시간에 대상root- parse- ressultrelation또는 사용하여 실행 시간에execrelationistArgetRelation (). 대안 가능성은 내에서 늦게 토토 사이트 순위을 수행하는 것입니다.execforeignupdate또는execforeigndelete콜백이지만 이에 대한 특별한 지원은 제공되지 않습니다.

a에 의해 지정된 외국 테이블의 경우업데이트/공유 선택명령,Outissscan운영은 튜플을 동등한 튜플을 가져 와서 다시 조기 토토 사이트 순위을 수행 할 수 있습니다업데이트/공유 선택. 대신 늦게 토토 사이트 순위을 수행하려면에 정의 된 콜백 함수를 제공합니다.섹션 56.2.5. 안에getforeignrowmarktype, Select Rowmark 옵션row_mark_exclusive, ROW_MARK_NOKEYEXCLUSIC, row_mark_share또는row_mark_keyshare요청 된 토토 사이트 순위 강도에 따라. (핵심 코드는 당신이 선택한이 네 가지 옵션 중 어느 쪽을 선택하든 동일하게 작동합니다.) 다른 곳에서는 |get_plan_rowmark계획 시간 또는execfindrowmark실행 시간에; Null Rowmark Struct가 반환되는지 여부를 확인해야합니다.강도필드는LCS_NONE.

마지막으로, AN에서 사용되는 외국 테이블의 경우업데이트, 삭제또는업데이트/공유 선택명령이지만 행으로 지정되지 않으므로 기본 선택을 무시하여 전체 행을 복사하여getforeignrowmarktype옵션 선택row_mark_reference잠금 강도를 볼 때LCS_NONE. 이로 인해Refetchforeignrow그 값으로 호출 될MarkType; 그런 다음 새로운 잠금 장치를 얻지 않고 행을 다시 가져와야합니다. (getforeignrowmarktype함수이지만 토토 사이트 순위 해제 행을 다시 가져오고 싶지 않습니다. 옵션을 선택하십시오row_mark_copyforLCS_NONE.)

참조src/include/nodes/lockoptions.h,RowmarkTypeandPlanrowmarkinsrc/include/nodes/plannodes.hexecrowmarkinsrc/include/nodes/execnodes.h추가 정보는

수정 제출

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