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 soi kèo bóng đá truoctran trong mọi trường hợp. Để có bất kỳ kế hoạch truy vấn soi kèo bóng đá truoctran 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 quaMAX_PARALLED_Workers_per_gather
.
Dynamic_Shared_Memory_Typephải được đặt thành một giá trị khácKhông
. Truy vấn soi kèo bóng đá truoctran 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 như một quy trình duy nhất trong tình huống này, không có công nhân nền soi kèo bóng đá truoctran có sẵn.
Ngay cả khi có thể tạo ra các kế hoạch truy vấn soi kèo bóng đá truoctran, người lập kế hoạch sẽ không tạo chúng cho một truy vấn nhất định nếu bất kỳ điều nào sau đây là đúng:
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 soi kèo bóng đá truoctran nào cho truy vấn đó sẽ được tạo.Tạo bảng ... AS
, Chọn vào
vàTạo chế độ xem vật chất
Tạo một bảng mới và điền vào nó có thể sử dụng một kế hoạch soi kèo bóng đá truoctran.
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 soi kèo bóng đá truoctran nào được tạo ra.PostgreSQL: TàiSẽ không bao giờ sử dụng kế hoạch soi kèo bóng đá truoctran. Tương tự, vòng lặp PL/PGSQL của biểu mẫucho x trong vòng lặp truy soi kèo bóng đá truoctran .. vòng lặp end
Sẽ không bao giờ sử dụng gói soi kèo bóng đá truoctran, vì hệ thống truy vấn soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran đang hoạt động.
Truy soi kèo bóng đá truoctran sử dụng bất kỳ chức năng nào được đánh dấusoi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran
, nhưng các chức năng do người dùng xác định được đánh dấusoi kèo bóng đá truoctran không an toàn
Theo mặc định. Xem cuộc thảo luận củaPhần 15.4.
Truy vấn đang chạy bên trong một truy vấn khác đã soi kèo bóng đá truoctran. Ví dụ: nếu một hàm được gọi bởi một truy vấn soi kèo bóng đá truoctran sẽ tự mình truy vấn SQL, thì truy vấn đó sẽ không bao giờ sử dụng một kế hoạch soi kèo bóng đá truoctran.
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.
Ngay cả khi kế hoạch truy vấn soi kèo bóng đá truoctran được tạo cho một truy vấn cụ thể, có một số trường hợp theo đó không thể thực hiện kế hoạch đó soi kèo bóng đá truoctran tại thời điểm thực thi. Nếu điều này xảy ra, người lãnh đạo sẽ thực hiện phần của kế hoạch bên dướiTập hợp
Node hoàn toàn của chính nó, gần như làTập hợp
Node không có mặt. Điều này sẽ xảy ra nếu bất kỳ điều kiện soi kèo bóng đá truoctran sau đây được đáp ứng:
Không có nhân viên nền soi kèo bóng đá truoctran 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.
Không có nhân viên nền nào có thể có được vì giới hạn rằng tổng số công nhân nền được đưa ra cho các mục đích của truy vấn soi kèo bóng đá truoctran không thể vượt quáMAX_PARALLED_Workers.
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 truy soi kèo bóng đá truoctran mở rộng. TừlibpqHiện không cung cấp cách 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ập14331_1436414366_14488
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 soi kèo bóng đá truoctran không được tạo ra khi mức độ cô lập giao dịch có thể nối tiếp.