Re: rewrite in to exists?
От | Christopher Kings-Lynne |
---|---|
Тема | Re: rewrite in to exists? |
Дата | |
Msg-id | 08cd01c37da5$04cd5ff0$2800a8c0@mars обсуждение исходный текст |
Ответ на | rewrite in to exists? (LN Cisneros <lnsea@earthlink.net>) |
Ответы |
Re: rewrite in to exists?
|
Список | pgsql-performance |
> I'm on 7.3.4 and this query gets horrible performance. Is there a way to rewrite it with an exists or some way to get better performance? > > select code, id, name, date_of_service > from tbl > where date_of_service in > (select date_of_service > from tbl > where xxx >= '29800' > and xxx <= '29909' > and code = 'XX') > and client_code = 'XX' > order by id, date_of_service; ???? Why can't you just go: select code, id, name, date_of_service from tbl where xxx <= 29800 and xx >= 29909 and code='XX' and client_code='XX' order by id, date_of_service; Or use a between clause is nice: select code, id, name, date_of_service from tbl where xxx between 29800 and 29909 and code='XX' and client_code='XX' order by id, date_of_service; But seriously - your query above is referencing 'tbl' twice - is that correct, or is the tbl in the subselect supposed to be something different? Chris
В списке pgsql-performance по дате отправления: