Throwing unnecessary joins away

Поиск
Список
Период
Сортировка
От Ottó Havasvölgyi
Тема Throwing unnecessary joins away
Дата
Msg-id 34608c0c0601120418n1af567b9n@mail.gmail.com
обсуждение исходный текст
Ответы Re: Throwing unnecessary joins away
Список pgsql-performance
Hi all,
 
Is PostgreSQL able to throw unnecessary joins?
For example I have two tables, and I join then with their primary keys, say type of bigint . In this case if I don't reference to one of the tables anywhere except the join condition, then the join can be eliminated.
Or if I do a "table1 left join table2 (table1.referer=table2.id)"  (N : 1 relationship), and I don't reference table2 anywhere else, then it is unnecessary.
Primary key - primary key joins are often generated by O/R mappers. These generated queries could be optimized even more by not joining if not necessary.
 
You may say that I should not write such queries. The truth is that the O/R mapper is generating queries on views, and it does not use every field every time, but even so the query of the view is executed with the same plan by PostgreSQL, although some joins are unnecessary.
 
So basically this all is relevant only with views.
 
Best Regards,
Otto

В списке pgsql-performance по дате отправления:

Предыдущее
От: Simon Riggs
Дата:
Сообщение: Re: Extremely irregular query performance
Следующее
От: Alessandro Baretta
Дата:
Сообщение: Re: Throwing unnecessary joins away