Re: Index scan never executed?

From: "Morten Tryfoss" <Morten(dot)Tryfoss(at)1880nummeropplysning(dot)no>
To: "pgsql-sql" <pgsql-sql(at)postgresql(dot)org>
Subject: Re: Index scan never executed?
Date: 2003-05-29 18:24:50
Message-ID: 07411F6A634E5445AEF010C58590F2FB63669E@exchangeone.kristiansand.viadial.no
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Hi,

This may make the query faster.

try to split the query into two parts:

first fetch all list-id's into a temp table (where cr.project_id = '55' and cr.start_time between '4/4/2003 0:0' and now())

then, join the temp table on lists (where l.list_of_lists_id = '691').

Morten

-----Opprinnelig melding-----
Fra: Chad Thompson [mailto:chad(at)weblinkservices(dot)com]
Sendt: 29. mai 2003 19:20
Til: pgsql-sql
Emne: [SQL] Index scan never executed?

I have never been very good at reading these query plans, but I have a bit
of a problem w/ my query. So any help is appreciated.

The query is fairly self explanitory i think. 2 tables, call_results ( 6.5
Million records ) and lists ( 11 Million records )

weblink=# explain analyze
weblink-# select count(*) as count
weblink-# from call_results cr join lists l on cr.list_id = l.id
weblink-# where cr.project_id = '55'
weblink-# and cr.start_time between '4/4/2003 0:0' and now()
weblink-# and l.list_of_lists_id = '691';

QUERY PLAN
----------------------------------------------------------------------------
----
-------------------------------------------------------------------------
Aggregate (cost=2519.58..2519.58 rows=1 width=16) (actual
time=110715.45..110715.46 rows=1 loops=1)
-> Nested Loop (cost=0.00..2519.58 rows=1 width=16) (actual
time=110715.43..110715.43 rows=0 loops=1)
-> Index Scan using start_time_idx on call_results cr
(cost=0.00..2021.00 rows=164 width=8) (actual time=110715.42..110715.42
rows=0 loops=1)
Index Cond: ((start_time >= '2003-04-04
00:00:00-07'::timestamp with time zone) AND (start_time <= now()))
Filter: (project_id = 55::bigint)
-> Index Scan using lists_pkey on lists l (cost=0.00..3.03 rows=1
width=8) (never executed)
Index Cond: ("outer".list_id = l.id)
Filter: (list_of_lists_id = 691::bigint)
Total runtime: 110747.58 msec
(9 rows)

The big thing I dont understand is why it tells me (never executed) on
lists_pkey.
I also dont see where all the time is being taken up. I thought that
(actual time=110715.42..110715.42) meant from millisecond this... TO
millisecond that, but that would mean that this index scan took no time. So
as you can see I am very confused. :-)

TIA for any suggestions on how to make this query faster.
Chad

PS I have run vacuum full and analyze as reciently as last night :-)

---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo(at)postgresql(dot)org so that your
message can get through to the mailing list cleanly

Browse pgsql-sql by date

  From Date Subject
Next Message David Olbersen 2003-05-29 18:27:35 Re: Rows UPDATEd? (solved!)
Previous Message Stephan Szabo 2003-05-29 17:58:50 Re: Index scan never executed?