Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5

56.5. Hàng soi kèo bóng đá truoctran trong các gói dữ liệu nước ngoài

Nếu cơ chế lưu trữ cơ bản của FDW có một khái niệm soi kèo bóng đá truoctran các hàng riêng lẻ để ngăn chặn các bản cập nhật đồng thời của các hàng đó, thì thường có giá trị đối với FDW để thực hiện soi kèo bóng đá truoctran cấp hàng với gần đúng như thực tế với ngữ nghĩa được sử dụng trong thông thườngPostgreSQLBảng. Có nhiều cân nhắc liên quan đến điều này.

Một quyết định quan trọng được đưa ra là có nên thực hiệnsoi kèo bóng đá truoctran sớmhoặcsoi kèo bóng đá truoctran trễ9040_9716PostgreSQLtids do.

Theo mặc định,PostgreSQLBỏ qua các cân nhắc soi kèo bóng đá truoctran khi giao tiếp với FDW, nhưng FDW có thể thực hiện soi kèo bóng đá truoctran sớm mà không cần hỗ trợ rõ ràng từ mã lõi. Các chức năng API được mô tả trongPhần 56.2.5, được thêm vàoPostgreSQL9.5, cho phép FDW sử dụng soi kèo bóng đá truoctran trễ nếu muốn.

Một cân nhắc bổ sung là trongĐọc cam kếtChế độ cách ly,PostgreSQLcó thể cần kiểm tra lại hạn chế và tham gia soi kèo bóng đá truoctran điều kiện so với phiên bản cập nhật của một số Tarple Target. Kiểm tra lại soi kèo bóng đá truoctran điều kiện tham gia yêu cầu soi kèo bóng đá truoctran bản sao lại của soi kèo bóng đá truoctran hàng không phải mục tiêu trước đây đã được tham gia vào TUPLE mục tiêu. Khi làm việc với tiêu chuẩnPostgreSQL10717_11434

cho mộtCập nhậthoặcXóaTrên bàn nước ngoài, khuyến nghị rằngForeignScanHoạt động trên bảng đích thực hiện soi kèo bóng đá truoctran sớm trên các hàng mà nó lấy, có lẽ thông qua tương đươngChọn để cập nhật. FDW có thể phát hiện xem bảng có phải làCập nhật/Xóamục tiêu tại thời điểm lập kế hoạch bằng cách so sánh relid của nó vớiroot- parse- resultrelationhoặc tại thời điểm thực hiện bằng cách sử dụngexecRelationistArgetRelation (). Một khả năng thay thế là thực hiện soi kèo bóng đá truoctran trễ trongEXECFORIGNUPDATEhoặcExecforeIgnDeleteCallback, nhưng không có hỗ trợ đặc biệt nào được cung cấp cho điều này.

Đối với các bảng nước ngoài được chỉ định là bị soi kèo bóng đá truoctran bởi AChọn để cập nhật/chia sẻlệnh, TheForeignScan12475_12562Chọn để cập nhật/chia sẻ. Để thực hiện soi kèo bóng đá truoctran trễ thay thế, hãy cung cấp các chức năng gọi lại được xác định trongPhần 56.2.5. TRONGgetforeignrowmarktype, chọn Tùy chọn RowmarkRow_Mark_Exclusive, 12981_13006, 13035_13051hoặcRow_Mark_KeyShareTùy thuộc vào cường độ soi kèo bóng đá truoctran được yêu cầu. .get_plan_rowmarkTại thời điểm kế hoạch hoặcExecfindrowmarkTại thời điểm thực hiện; bạn phải kiểm tra không chỉ có một cấu trúc hàng không null được trả về hay không, mà là của nóSức mạnhTrường không phảiLCS_NONE.

Cuối cùng, đối với soi kèo bóng đá truoctran bảng nước ngoài được sử dụng trong mộtCập nhật, XóahoặcChọn để cập nhật/chia sẻlệnh nhưng không được chỉ định là soi kèo bóng đá truoctran hàng, bạn có thể ghi đè lựa chọn mặc định để sao chép toàn bộ hàng bằng cách cógetforeignrowmarkTypeChọn tùy chọnRow_Mark_ReferenceKhi nhìn thấy sức mạnh soi kèo bóng đá truoctranLCS_NONE. Điều này sẽ gây raRefetchForeIgnrowđược gọi với giá trị đó chomarktype; Sau đó, nó sẽ tìm nạp lại hàng mà không cần có bất kỳ soi kèo bóng đá truoctran mới. (Nếu bạn cógetforeignrowmarktypeHàm nhưng không muốn tìm nạp lại các hàng đã mở soi kèo bóng đá truoctran, chọn Tùy chọnRow_Mark_CopychoLCS_NONE.)

xemsrc/bao gồm/nút/lockoptions.h, soi kèo bóng đá truoctran nhận xét choRowMarkTypeplanrowmarkinsrc/bao gồm/nút/plannodes.hvà soi kèo bóng đá truoctran nhận xét choExecRowMarkinsrc/bao gồm/nút/execNodes.hĐể biết thêm thông tin.

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì trong tài liệu không chính xác, không phù hợp Kinh nghiệm của bạn với tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo cáo vấn đề tài liệu.