PostgreSQL: kèo bóng đá hôm | |||
---|---|---|---|
prev | UP | Chương 15. Truy vấn kèo bóng đá pháp | Tiếp theo |
Có một số cài đặt có thể khiến trình lập kế hoạch truy vấn không tạo ra kế hoạch truy vấn kèo bóng đá pháp trong mọi trường hợp. Để có bất kỳ kế hoạch truy vấn kèo bóng đá pháp nào được tạo, các cài đặt sau phải được cấu hình như đã chỉ ra.
MAX_PARALLED_Workers_per_gatherphải được đặt thành một giá trị lớn hơn 0. Đây là một trường hợp đặc biệt của nguyên tắc chung hơn rằng không nên sử dụng nhiều công nhân hơn số được định cấu hình qua9064_9097.
Dynamic_Shared_Memory_Typephải được đặt thành một giá trị khácKhông. Truy vấn kèo bóng đá pháp yêu cầu bộ nhớ chia sẻ động để truyền dữ liệu giữa các quy trình hợp tác.
Ngoài ra, hệ thống không được chạy ở chế độ người dùng đơn. Vì toàn bộ hệ thống cơ sở dữ liệu đang chạy trong một quy trình duy nhất trong tình huống này, sẽ không có nhân viên nền kèo bóng đá pháp có sẵn.
9598_9764
Truy vấn ghi mọi dữ liệu hoặc khóa bất kỳ hàng cơ sở dữ liệu nào. Nếu một truy vấn chứa hoạt động biến đổi dữ liệu ở cấp cao nhất hoặc trong CTE, không có kế hoạch kèo bóng đá pháp nào cho truy vấn đó sẽ được tạo. Đây là một hạn chế của việc thực hiện hiện tại có thể được nâng lên trong một bản phát hành trong tương lai.
Truy vấn có thể bị đình chỉ trong khi thực hiện. Trong mọi tình huống mà hệ thống nghĩ rằng thực thi một phần hoặc gia tăng có thể xảy ra, không có kế hoạch kèo bóng đá pháp nào được tạo ra. Ví dụ: con trỏ được tạo bằngPostgreSQL: Tàisẽ không bao giờ sử dụng kế hoạch kèo bóng đá pháp. Tương tự, vòng lặp PL/PGSQL của biểu mẫucho x trong vòng lặp kèo bóng đá pháp .. vòng lặp endSẽ không bao giờ sử dụng gói kèo bóng đá pháp, vì hệ thống truy vấn kèo bóng đá pháp không thể xác minh rằng mã trong vòng lặp an toàn để thực thi trong khi truy vấn kèo bóng đá pháp đang hoạt động.
kèo bóng đá pháp sử dụng bất kỳ chức năng nào được đánh dấukèo bóng đá pháp không an toàn. Hầu hết các chức năng do hệ thống xác định làAn toàn kèo bóng đá pháp, nhưng các chức năng do người dùng xác định được đánh dấukèo bóng đá pháp không an toànTheo mặc định. Xem cuộc thảo luận củaPhần 15.4.
10980_11364
Mức cách ly giao dịch có thể nối tiếp. Đây là một giới hạn của việc thực hiện hiện tại.
11501_11762Tập hợpnút hoàn toàn của chính nó, gần như làTập hợpNode không có mặt. Điều này sẽ xảy ra nếu bất kỳ điều kiện kèo bóng đá pháp sau đây được đáp ứng:
Không có nhân viên nền kèo bóng đá pháp có thể có được vì giới hạn rằng tổng số công nhân nền không thể vượt quáMax_Worker_Processes.
Máy khách gửi tin nhắn thực thi với số lượng tìm nạp không khác. Xem cuộc thảo luận vềGiao thức kèo bóng đá pháp mở rộng. TừlibpqHiện tại không cung cấp cách kèo bóng đá pháp để gửi tin nhắn như vậy, điều này chỉ có thể xảy ra khi sử dụng máy khách không dựa vào libpq. Nếu đây là một sự xuất hiện thường xuyên, có thể là một ý tưởng tốt để thiết lập12664_1269712699_12813
Một câu lệnh đã chuẩn bị được thực thi bằng cách sử dụngTạo bảng .. như thực thi ..Tuyên bố. Cấu trúc này chuyển đổi những gì nếu không sẽ là một hoạt động chỉ đọc thành một hoạt động đọc-viết, khiến nó không đủ điều kiện cho truy vấn kèo bóng đá pháp.
Mức cách ly giao dịch có thể nối tiếp. Tình huống này thường không phát sinh, bởi vì các kế hoạch truy vấn kèo bóng đá pháp không được tạo ra khi mức độ cô lập giao dịch có thể nối tiếp. Tuy nhiên, điều đó có thể xảy ra nếu mức cách ly giao dịch được thay đổi thành có thể nối tiếp sau khi kế hoạch được tạo và trước khi nó được thực thi.