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 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1
Tài liệu này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

46.5. Người lập tỷ lệ kèo bóng đá tối nay/Trình tối ưu hóa

Nhiệm vụ củaNgười lập tỷ lệ kèo bóng đá tối naylà Tạo một tỷ lệ kèo bóng đá tối nay thực hiện tối ưu. Một truy vấn SQL nhất định (và do đó, Cây truy vấn) thực sự có thể được thực hiện trong nhiều loại khác nhau Các cách, mỗi cách sẽ tạo ra cùng một bộ kết quả. Nếu nó là khả thi về mặt tính toán, trình tối ưu hóa truy vấn sẽ kiểm tra từng Những tỷ lệ kèo bóng đá tối nay thực thi có thể này, cuối cùng chọn thực thi tỷ lệ kèo bóng đá tối nay dự kiến ​​sẽ chạy nhanh nhất.

Lưu ý:Trong một số tình huống, kiểm tra từng cách có thể trong mà một truy vấn có thể được thực thi sẽ mất quá nhiều không gian thời gian và bộ nhớ. Cụ thể, điều này xảy ra khi thực hiện Các truy vấn liên quan đến số lượng lớn các hoạt động tham gia. Để xác định một tỷ lệ kèo bóng đá tối nay truy vấn hợp lý (không nhất thiết nhất thiết tối ưu) trong một lượng thời gian hợp lý,PostgreSQLsử dụng ADi truyền Trình tỷ lệ kèo bóng đá tối nay truy vấn(xemChương 53) Khi Số lượng tham gia vượt quá ngưỡng (xemgeqo_threshold).

Quy trình tìm kiếm của người lập tỷ lệ kèo bóng đá tối nay thực sự hoạt động với dữ liệu Cấu trúc được gọi làđường dẫn, đơn giản là Các đại diện cắt giảm các tỷ lệ kèo bóng đá tối nay chỉ chứa nhiều Thông tin như người lập tỷ lệ kèo bóng đá tối nay cần đưa ra quyết định của mình. Sau Đường dẫn rẻ nhất được xác định, một bản thông tin đầy đủCây tỷ lệ kèo bóng đá tối nayđược xây dựng để chuyển cho người thực thi. Cái này đại diện cho tỷ lệ kèo bóng đá tối nay thực thi mong muốn một cách chi tiết đủ cho người thực thi để chạy nó. Trong phần còn lại của phần này, chúng tôi sẽ bỏ qua sự khác biệt giữa các đường dẫn và tỷ lệ kèo bóng đá tối nay.

46.5.1. Tạo ra các tỷ lệ kèo bóng đá tối nay có thể

12555_12979Mối quan hệ.Attribution hằng số opr. Nếu nhưMối quan hệ.Attributionxảy ra để phù hợp với khóa của Chỉ mục B-Tree vàOPRlà một trong những người vận hành được liệt kê trong chỉ mụctoán tử lớp học, một tỷ lệ kèo bóng đá tối nay khác được tạo bằng chỉ mục B-cây để quét mối quan hệ. Nếu có các chỉ mục tiếp theo có mặt và Các hạn chế trong truy vấn xảy ra phù hợp với khóa của một chỉ mục, tỷ lệ kèo bóng đá tối nay tiếp theo sẽ được xem xét. Các tỷ lệ kèo bóng đá tối nay quét chỉ mục cũng là được tạo cho các chỉ mục có thứ tự sắp xếp có thể khớp với Truy vấn củaĐặt hàng bởimệnh đề (nếu có) hoặc a Sắp xếp thứ tự có thể hữu ích để hợp nhất tham gia (xem dưới).

Nếu truy vấn yêu cầu tham gia hai hoặc nhiều quan hệ, tỷ lệ kèo bóng đá tối nay cho Kết hợp quan hệ được xem xét sau khi tất cả các tỷ lệ kèo bóng đá tối nay khả thi đã được Tìm thấy để quét các mối quan hệ đơn. Ba tham gia có sẵn Chiến lược là:

  • Tham gia vòng lồng nhau13955_14311

  • Hợp nhất tham gia: Mỗi quan hệ được sắp xếp trên Các thuộc tính tham gia trước khi tham gia bắt đầu. Sau đó, hai mối quan hệ được quét song song và các hàng phù hợp được tỷ lệ kèo bóng đá tối nayt hợp để hình thành Tham gia hàng. Loại tham gia này hấp dẫn hơn vì mỗi quan hệ chỉ phải được quét một lần. Phân loại cần thiết có thể là đạt được bằng một bước sắp xếp rõ ràng hoặc bằng cách quét quan hệ theo đúng thứ tự bằng cách sử dụng một chỉ mục trên khóa nối.

  • băm tham gia: Mối quan hệ đúng là đầu tiên được quét và tải vào bảng băm, sử dụng các thuộc tính tham gia của nó làm Chìa khóa băm. Tiếp theo, mối quan hệ bên trái được quét và thích hợp Các giá trị của mỗi hàng được tìm thấy được sử dụng làm khóa băm để xác định vị trí khớp các hàng trong bảng.

Khi truy vấn liên quan đến nhiều hơn hai mối quan hệ, trận chung kết Kết quả phải được xây dựng bởi một cây các bước tham gia, mỗi bước có hai đầu vào. Người lập tỷ lệ kèo bóng đá tối nay kiểm tra các chuỗi tham gia khác nhau có thể Tìm cái rẻ nhất.

Nếu truy vấn sử dụng ít hơngeqo_thresholdQuan hệ, tìm kiếm gần như đã được tiến hành để tìm ra thứ tốt nhất Tham gia trình tự. Người lập tỷ lệ kèo bóng đá tối nay ưu tiên xem xét tham gia giữa Bất kỳ hai mối quan hệ nào tồn tại một mệnh đề tham gia tương ứng trongWHERETrình độ chuyên môn (tức là, cho mà một hạn chế nhưỞ đâu rel1.attr1 = rel2.ATTR2tồn tại). Tham gia các cặp không có mệnh đề tham gia chỉ được coi là khi không có lựa chọn nào khác, đó là một Mối quan hệ cụ thể không có sẵn các điều khoản tham gia mối quan hệ. Tất cả các tỷ lệ kèo bóng đá tối nay có thể được tạo cho mỗi cặp tham gia được xem xét bởi người lập tỷ lệ kèo bóng đá tối nay và một trong số đó (ước tính là) giá rẻ nhất được chọn.

Khigeqo_thresholdbị vượt quá, Các chuỗi tham gia được xem xét được xác định bởi heuristic, vì được mô tả trongChương 53. Nếu không thì quá trình là như nhau.

Cây tỷ lệ kèo bóng đá tối nay hoàn thành bao gồm các lần quét tuần tự hoặc chỉ mục của các mối quan hệ cơ sở, cộng với các nút nối, hợp nhất hoặc băm cần thiết, cộng với bất kỳ bước phụ trợ nào cần thiết, chẳng hạn như các nút sắp xếp hoặc Các nút tính toán chức năng tổng hợp. Hầu hết các loại nút tỷ lệ kèo bóng đá tối nay này có khả năng bổ sung để làmLựa chọn(loại bỏ các hàng không đáp ứng điều kiện boolean được chỉ định) và16719_1673116733_16946WHEREmệnh đề và tính toán đầu ra cần thiết Biểu thức đến các nút thích hợp nhất của cây tỷ lệ kèo bóng đá tối nay.