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ế.

42,5. Người lập kèo bóng đá c1/Trình tối ưu hóa

Nhiệm vụ củaNgười lập kèo bóng đá c1 hóaIS Để tạo ra một kèo bóng đá c1 thực hiện tối ưu. Một truy vấn SQL nhất định (và Do đó, một cây truy vấn) thực sự có thể được thực hiện trong nhiều loại theo các cách khác nhau, mỗi cách sẽ tạo ra cùng một bộ kết quả. Nếu nó 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 kèo bóng đá c1 thực thi có thể, cuối cùng chọn kèo bóng đá c1 thực thi dự kiến ​​sẽ chạy nhanh nhất.

Lưu ý:11412_1176911800_11812sử dụng ATrình kèo bóng đá c1 truy vấn di truyền.

Quy trình tìm kiếm của người lập kèo bóng đá c1 thực sự hoạt động với dữ liệu Cấu trúc được gọi làđường dẫn, đó là Đơn giản chỉ cần cắt giảm các đại diện của các kèo bóng đá c1 chỉ chứa nhiều Thông tin như người lập kèo bóng đá c1 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 kèo bóng đá c1được xây dựng để chuyển cho người thực thi. Cái này đại diện cho kèo bóng đá c1 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à kèo bóng đá c1.

42.5.1. Tạo ra các kèo bóng đá c1 có thể

trình lập kèo bóng đá c1/trình tối ưu hóa bắt đầu bằng cách tạo kèo bóng đá c1 cho Quét từng mối quan hệ riêng lẻ (bảng) được sử dụng trong truy vấn. Các kèo bóng đá c1 có thể được xác định bởi các chỉ mục có sẵn trên mỗi quan hệ. Luôn có khả năng thực hiện một Quét tuần tự về một mối quan hệ, vì vậy một kèo bóng đá c1 quét tuần tự là luôn luôn được tạo ra. Giả sử một chỉ mục được xác định trên một mối quan hệ (đối với Ví dụ một chỉ mục B-Tree) và truy vấn chứa hạn chếMối quan hệ.Attribution hằng số opr. Nếu nhưMối quan hệ.Attributionxảy ra để phù hợp Khóa của chỉ mục B-Tree vàOPRIS một trong các toán tử được liệt kê trong chỉ mụcLớp toán tử, một kèo bóng đá c1 khác được tạo bằng cách sử dụng Chỉ số B-Tree để quét mối quan hệ. Nếu có thêm chỉ mục hiện tại và các hạn chế trong truy vấn xảy ra khớp với một khóa của một chỉ mục các kèo bóng đá c1 tiếp theo sẽ được xem xét.

Sau tất cả các kế hoạch khả thi đã được tìm thấy để quét đơn Quan hệ, kế hoạch tham gia quan hệ được tạo ra. Các Người lập kèo bóng đá c1 hóa ưu tiên xem xét tham gia giữa bất kỳ Hai mối quan hệ 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ó tham gia mệnh đề chỉ được coi là khi không có lựa chọn nào khác, rằng là, một mối quan hệ cụ thể không có sẵn các điều khoản tham gia quan hệ khác. Tất cả các kế hoạch có thể được tạo cho mỗi lần tham gia Cặp được xem xét bởi người lập kèo bóng đá c1 hóa. Ba có thể Tham gia các chiến lược là:

  • Tham gia vòng lồng nhau: Quyền quan hệ được quét một lần cho mỗi hàng được tìm thấy ở bên trái mối quan hệ. Chiến lược này dễ thực hiện nhưng có thể rất tốn thời gian. (Tuy nhiên, nếu mối quan hệ đúng có thể Được quét bằng quét chỉ mục, đây có thể là một chiến lược tốt. Nó có thể sử dụng các giá trị từ hàng hiện tại của bên trái quan hệ như các phím cho việc quét chỉ mục của bên phải.)

  • Hợp nhất sắp xếp tham gia14876_15350

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

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 kèo bóng đá c1 kiểm tra các chuỗi tham gia khác nhau có thể để tìm cái rẻ nhất.

Cây kèo bóng đá c1 hoàn thành bao gồm quét tuần tự hoặc chỉ mục của các mối quan hệ cơ sở, cộng với vòng lặp, hợp nhất hoặc băm tham gia các nút khi cần, cộng với bất kỳ bước phụ trợ nào cần thiết, chẳng hạn như sắp xếp Các nút hoặc các nút tính toán tổng hợp. Hầu hết trong số này Các loại nút kèo bóng đá c1 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àDự đoán(tính toán của một cột dẫn xuất Dựa trên các giá trị cột đã cho, nghĩa là đánh giá vô hướng biểu thức khi cần thiết). Một trong những trách nhiệm của Người lập kèo bóng đá c1 phải đính kèm các điều kiện lựa chọn từWHERE16706_16814