Thread: Antw: Re: Query questions

Antw: Re: Query questions

From
"Christian Rengstl"
Date:
My version is 8.1.4. Here is the plan for the query, it's performed on a
smaller table, though because i can't access the biggest table at the
moment:
QUERY PLAN


-----------------------------------------------------------------------------------------------------------------------------

Bitmap Heap Scan on mytable  (cost=67.48..16738.24 rows=6519 width=10)
(actual time=34.033..1903.106 rows=1 loops=1)
  Recheck Cond: ((pid)::text = 'ZZZ000110011'::text)

  Filter: ((crit)::text = '915677'::text)

  ->  Bitmap Index Scan on idx_pid_22  (cost=0.00..67.48 rows=8996
width=0) (actual time=12.998..12.998 rows=6207 loops=1)
        Index Cond: ((pid)::text = 'ZZZ000110011'::text)

Total runtime: 1903.894 ms

And yes i have indexes on both pid (varchar(15)) and crit(varchar(13)).



>>> "A. Kretschmer" <andreas.kretschmer@schollglas.com> 31.07.06 15.49
Uhr >>>
am  31.07.2006, um 15:32:19 +0200 mailte Christian Rengstl folgendes:
> Hi list,
>
> i have a problem with creating a query and i hope somebody can give me
> some hints. I have the following table
> pid(varchar), crit(varchar), val1(varchar), val2(varchar),
> iDate(timestamp)
> where there are up to 63 million lines with 1500 distinct pids and
> around 42000 distinct crits:
> pid   crit   val1   val2   iDate
> 'yyy'  'aaa'  'b'    'c'      someTime
> 'yyy'  'bbb'  'b'    'a'      anotherTime
> ...
> What i have to do is to export the table for which i have to query the
> table with the following pattern: select val1, val2 from mytable where
> pid='yyy' and crit='aaa'. But if i do this 63 million times, it just
> takes too long. So, what i would like to do is to make a query where i

Do you have indexe on pid and crit?
Can you paste a "explain analyse select val1, val2 from mytable where
pid='yyy' and crit='aaa';"

Which version? ("select version();").


HTH, Andreas
--
Andreas Kretschmer    (Kontakt: siehe Header)
Heynitz:  035242/47215,      D1: 0160/7141639
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
 ===    Schollglas Unternehmensgruppe    ===

---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend


Re: Antw: Re: Query questions

From
Richard Huxton
Date:
Christian Rengstl wrote:
> My version is 8.1.4. Here is the plan for the query, it's performed on a
> smaller table, though because i can't access the biggest table at the
> moment:
> QUERY PLAN
>
>
-----------------------------------------------------------------------------------------------------------------------------
>
> Bitmap Heap Scan on mytable  (cost=67.48..16738.24 rows=6519 width=10)
> (actual time=34.033..1903.106 rows=1 loops=1)
>   Recheck Cond: ((pid)::text = 'ZZZ000110011'::text)
>
>   Filter: ((crit)::text = '915677'::text)
>
>   ->  Bitmap Index Scan on idx_pid_22  (cost=0.00..67.48 rows=8996
> width=0) (actual time=12.998..12.998 rows=6207 loops=1)
>         Index Cond: ((pid)::text = 'ZZZ000110011'::text)
>
> Total runtime: 1903.894 ms
>
> And yes i have indexes on both pid (varchar(15)) and crit(varchar(13)).

That's not quite what Andreas asked. Do you have an index on (pid, crit)?

--
   Richard Huxton
   Archonet Ltd

Re: Antw: Re: Query questions

From
"A. Kretschmer"
Date:
am  31.07.2006, um 15:55:39 +0100 mailte Richard Huxton folgendes:
> Christian Rengstl wrote:
> >My version is 8.1.4. Here is the plan for the query, it's performed on a
> >                                    Total runtime: 1903.894 ms
> >And yes i have indexes on both pid (varchar(15)) and crit(varchar(13)).
>
> That's not quite what Andreas asked. Do you have an index on (pid, crit)?

He has 8.1, and i think, we have bitmap index scan for such tasks...
(we don't need a index over both columns)

Andreas
--
Andreas Kretschmer    (Kontakt: siehe Header)
Heynitz:  035242/47215,      D1: 0160/7141639
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
 ===    Schollglas Unternehmensgruppe    ===

Re: Antw: Re: Query questions

From
Richard Huxton
Date:
A. Kretschmer wrote:
> am  31.07.2006, um 15:55:39 +0100 mailte Richard Huxton folgendes:
>> Christian Rengstl wrote:
>>> My version is 8.1.4. Here is the plan for the query, it's performed on a
>>>                                    Total runtime: 1903.894 ms
>>> And yes i have indexes on both pid (varchar(15)) and crit(varchar(13)).
>> That's not quite what Andreas asked. Do you have an index on (pid, crit)?
>
> He has 8.1, and i think, we have bitmap index scan for such tasks...
> (we don't need a index over both columns)

Hmm - I'd have assumed an index spanning both columns would be a win
where the selectivity was reasonable (as it looked here). Reading
through the original post, I'd be tempted to see if an index on
(pid,crit,iDate) could be used for the sorting too. If the planner is
smart enough to spot it, that would presumably be the best result.

--
   Richard Huxton
   Archonet Ltd