Subselect performance

Поиск
Список
Период
Сортировка
От Daniel Lopez
Тема Subselect performance
Дата
Msg-id 199909201924.VAA10959@atm9.com.dtu.dk
обсуждение исходный текст
Ответы Re: [SQL] Subselect performance
Список pgsql-sql
Hi,

I am having the following problem with a subselect query. Basically if I do
(the following is some kind of pseudocde)

a)
$list = select d from c
select b from a where b in ( $list )

is  5 seconds

If I try:
b)
select b from a where b in (select d from c) 
is 3 minutes!!  (although it shouldbe at least as fast as a)!)


How can I improve b) so it takes 5 seconds?

(I attach the queries I am making)

a)
( select d from c)

select distinct product_id from purchase where customer_id=17

Unique  (cost=4799.93 rows=114777 width=4) ->  Sort  (cost=4799.93 rows=114777 width=4)         ->  Seq Scan on
purchase (cost=4799.93 rows=114777 width=4)    
 
(the preivous gives me some values, which are put in a string, then the query
is constructed:
select distinct product_id, name, date,
application, description from product where product_id in
( 1, 3 , 8 , 9 ... 47)
  
Unique  (cost=43.05 rows=41 width=45) ->  Sort  (cost=43.05 rows=41 width=45)         ->  Index Scan using product_idx,
product_idx,product_idx,
 
product_idx, product_idx, product_idx, product_idx, product_idx,
product_idx, product_idx, product_idx, product_idx, product_idx,
product_idx, product_idx, product_idx, product_idx, product_idx,
product_idx, product_idx, product_idx on product  (cost=43.05 rows=41
width=45)


b) All in one (much slower)

select  distinct product_id, name, date,
application, description from product where product_id in
(select distinct product_id from purchase where customer_id
=17)

NOTICE:  QUERY PLAN:

Seq Scan on product  (cost=66.38 rows=648 width=45) SubPlan     ->  Unique  (cost=4799.93 rows=114777 width=4)
    ->  Sort  (cost=4799.93 rows=114777 width=4)                    ->  Seq Scan on purchase  (cost=4799.93
 
rows=114777 width=4)B



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

Предыдущее
От: Margarita Barvinok
Дата:
Сообщение: Where to find the patch?
Следующее
От: "Stephen Horton"
Дата:
Сообщение: please remove me from the list