Re: force the use of a particular index

От: Scott Cain
Тема: Re: force the use of a particular index
Дата: ,
Msg-id: 1057944059.5766.34.camel@localhost.localdomain
(см: обсуждение, исходный текст)
Ответ на: force the use of a particular index  (Scott Cain)
Ответы: Re: force the use of a particular index  (Rod Taylor)
Список: pgsql-performance

Скрыть дерево обсуждения

force the use of a particular index  (Scott Cain, )
 Re: force the use of a particular index  (Rod Taylor, )
  Re: force the use of a particular index  (Scott Cain, )
   Re: force the use of a particular index  (Rod Taylor, )
 Re: force the use of a particular index  (Rod Taylor, )
  Re: force the use of a particular index  (Scott Cain, )
 Re: force the use of a particular index  (Scott Cain, )
  Re: force the use of a particular index  (Rod Taylor, )
   Re: force the use of a particular index  (Scott Cain, )
 Re: force the use of a particular index  (Tom Lane, )
  Re: force the use of a particular index  (Scott Cain, )
   Re: force the use of a particular index  (Tom Lane, )

On Fri, 2003-07-11 at 12:20, Rod Taylor wrote:
> On Fri, 2003-07-11 at 11:36, Scott Cain wrote:
> > Any other ideas?
>
> Out of curiosity, what do you get if you disable hash joins?
>
> set enable_hashjoin = false;

BINGO!
                                                                            QUERY PLAN



-------------------------------------------------------------------------------------------------------------------------------------------------------------------
 Unique  (cost=161718.69..161738.38 rows=113 width=53) (actual time=529.03..529.03 rows=1 loops=1)
   ->  Sort  (cost=161718.69..161721.50 rows=1125 width=53) (actual time=529.02..529.02 rows=1 loops=1)
         Sort Key: f.name, fl.fmin, fl.fmax, fl.strand, f.type_id, f.feature_id
         ->  Merge Join  (cost=26493.64..161661.65 rows=1125 width=53) (actual time=416.46..528.77 rows=1 loops=1)
               Merge Cond: ("outer".feature_id = "inner".feature_id)
               ->  Index Scan using feature_pkey on feature f  (cost=0.00..134592.43 rows=47912 width=39) (actual
time=0.46..502.50rows=431 loops=1) 
                     Filter: (type_id = 219)
               ->  Sort  (cost=26493.64..26722.33 rows=91476 width=14) (actual time=23.98..24.38 rows=570 loops=1)
                     Sort Key: fl.feature_id
                     ->  Index Scan using featureloc_src_6 on featureloc fl  (cost=0.00..18039.22 rows=91476 width=14)
(actualtime=15.16..21.85 rows=570 loops=1) 
                           Index Cond: ((fmin <= 2585581) AND (fmax >= 2565581))
                           Filter: (srcfeature_id = 6)
 Total runtime: 529.52 msec
(13 rows)

>
> How about a partial index on (feature_id) where type_id = 219?

That is a possiblity.  type_id is a foreign key on another table that
has several thousand rows, but in practice, there will be only a subset
of those that we are interested in using with this query, so it may not
be too unwieldy to do for each interesting type_id in practice.
However, for testing I just created the partial index on type_id=219 and
it was not used, so it may not make a difference anyway.

Thanks much,
Scott

--
------------------------------------------------------------------------
Scott Cain, Ph. D.                                         
GMOD Coordinator (http://www.gmod.org/)                     216-392-3087
Cold Spring Harbor Laboratory



В списке pgsql-performance по дате сообщения:

От: Scott Cain
Дата:
Сообщение: Re: force the use of a particular index
От: Scott Cain
Дата:
Сообщение: Re: force the use of a particular index