PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Cách tắt tất cả các tối ưu hóa của PostgreSQL

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




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mối quan hệ nhiều-nhiều JPA gây ra lỗi đệ quy vô hạn và lỗi tràn ngăn xếp

  2. Postgres - LỖI:câu lệnh chuẩn bị S_1 đã tồn tại

  3. Không có kết quả trả về do lỗi Truy vấn trong PostgreSQL

  4. Các giới hạn trên lược đồ PostgreSQL thay đổi bên trong các giao dịch?

  5. Hợp nhất các kết quả trong bảng thành các cột (pivot / crosstab?)