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