Bạn không thể.
Công cụ lập kế hoạch truy vấn của PostgreSQL không có cờ "tắt tối ưu hóa".
Sẽ rất thú vị nếu thêm vào, nhưng sẽ làm cho các bài kiểm tra hồi quy phức tạp hơn rất nhiều và có rất ít tiện ích.
Để làm những gì bạn muốn, tôi nghĩ bạn muốn sửa đổi mã lập kế hoạch truy vấn, biên dịch lại và cài đặt lại PostgreSQL cho mỗi lần kiểm tra. Hoặc hack nó để thêm một loạt các GUC tùy chỉnh (các biến hệ thống, như enable_seqscan
) để cho phép bạn bật và tắt các tính năng tối ưu cụ thể.
Tôi nghi ngờ rằng bất kỳ bản vá nào như vậy sẽ được chấp nhận vào PostgreSQL, nhưng nó đáng để thực hiện như một món đồ bỏ đi.
Thách thức duy nhất là PostgreSQL không phân biệt rõ ràng giữa "tối ưu hóa" và "điều chúng tôi làm để thực hiện truy vấn". Đôi khi các phần của mã lập kế hoạch mong đợi và yêu cầu rằng một tối ưu hóa cụ thể đã được áp dụng để hoạt động chính xác.