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

Truy vấn chậm trên chế độ xem UNION ALL

Đây dường như là một trường hợp lỗi của phi công. Kế hoạch truy vấn "v" chọn từ ít nhất 5 bảng khác nhau.

Bây giờ, Bạn có chắc Bạn được kết nối với cơ sở dữ liệu phù hợp? Có thể có một số cài đặt search_path thú vị? Có thể t1 và t2 thực sự là các khung nhìn (có thể trong một lược đồ khác)? Có thể bằng cách nào đó, bạn đang chọn từ một quan điểm sai?

Đã chỉnh sửa sau khi làm rõ:

Bạn đang sử dụng một tính năng khá mới gọi là "tham gia loại bỏ": http:// wiki.postgresql.org/wiki/What%27s_new_in_PostgreSQL_9.0#Join_Removal

http://rhaas.blogspot.com/2010 /06/why-join-removal-is-cool.html

Có vẻ như tính năng này không hoạt động khi liên kết tất cả tham gia. Bạn có thể phải viết lại dạng xem chỉ bằng hai bảng được yêu cầu.

một chỉnh sửa khác:Có vẻ như bạn đang sử dụng tổng hợp (như "select count (*) from v" so với "select * from v"), điều này có thể nhận được rất nhiều kế hoạch khác nhau khi bị xóa tham gia. Tôi đoán chúng ta sẽ không đi được xa nếu bạn không đăng các truy vấn thực tế, các định nghĩa và kế hoạch xem, bảng được sử dụng ...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tên miền SQL LỖI:cột không tồn tại, đặt mặc định

  2. Tạo emacs để làm nổi bật cú pháp postgresql theo mặc định

  3. Làm cách nào để cài đặt gem hoạt động trên OS X Lion với Ruby 1.8.7 mà không bị lỗi seg?

  4. Tổng số 1 trong một mặt nạ bit Postgres

  5. postgres array_agg LỖI:không thể tích lũy các mảng có kích thước khác nhau