Solution: A query optimizer explores the space of possible query plans to find the most promising one The Selinger query optimizer performs the search as follows: • Only considering left-deep query plans Instead of enumerating all possible plans and evaluating their costs, the optimizer keeps the efficient pipelined execution model in mind Thus, it only looks for left-deep query plans and enumerates different join orders It considers cartesian products as late as possible to reduce I/O costs It considers only nested-loop and sort-merge joins • In bottom-up fashion The optimizer starts by finding the best plan for one relation It then expands the plan by adding one relation at a time as an inner relation For each level, it keeps track of the cheapest plan per interesting output order, which will be explained shortly, as well as the cheapest plan overall When computing the cost of a plan, the Selinger considers both I/O cost and CPU cost • Considering interesting orders If the query has an ORDER BY or a GROUP BY clause, having results ordered by the columns that appear in those clauses can reduce the cost of the query plan because it can save extra I/Os needed by sort or aggregation Similarly, attributes that appear in join conditions are considered interesting orders because they reduce the cost of sort-merge joins When the Selinger optimizer evaluates a plan, at each stage, it keeps track of the cheapest plan per interesting order in addition to the cheapest plan overall Giải pháp: Trình tối ưu hóa truy vấn khám phá khơng gian kế hoạch truy vấn có để tìm kế hoạch có triển vọng Các Trình tối ưu hóa truy vấn Selinger thực tìm kiếm sau: • Chỉ xem xét kế hoạch truy vấn sâu bên trái Thay liệt kê tất kế hoạch có đánh giá chi phí chúng, trình tối ưu hóa giữ mơ hình thực thi pipelined hiệu tâm trí Do đó, tìm kiếm kế hoạch truy vấn sâu bên trái liệt kê lệnh tham gia khác Nó xem xét sản phẩm các-ten muộn tốt để giảm Chi phí I / O Nó xem xét phép nối vịng lặp lồng phép hợp xếp • Theo kiểu từ lên Trình tối ưu hóa bắt đầu cách tìm kế hoạch tốt cho mối quan hệ Sau đó, mở rộng kế hoạch cách thêm quan hệ thời điểm quan hệ bên Đối với cấp độ, theo dõi kế hoạch rẻ cho đơn đặt hàng đầu thú vị, giải thích sau đây, kế hoạch tổng thể rẻ Khi tính tốn chi phí kế hoạch, Selinger xem xét I / O chi phí chi phí CPU • Xem xét đơn đặt hàng thú vị Nếu truy vấn có mệnh đề ORDER BY GROUP BY, có kết xếp theo thứ tự cột xuất mệnh đề giảm chi phí kế hoạch truy vấn tiết kiệm thêm I / O cần thiết cách xếp tổng hợp Tương tự, thuộc tính xuất phép nối điều kiện coi đơn đặt hàng thú vị chúng làm giảm chi phí phép nối xếp-hợp Khi trình tối ưu hóa Selinger đánh giá kế hoạch, giai đoạn, theo dõi giá rẻ kế hoạch cho đơn đặt hàng thú vị kế hoạch rẻ nói chung