On Mon, Apr 18, 2005 at 12:25:33PM -0700, jackfitz@xxxxxxxxx wrote: > I was wondering if anyone could explain how to get the Query Analyzer > to use an Index that is defined for the table instead of doing a table > scan? I have a table with some indexes on it that seem NOT to get used > when I think they should. :-) Not that I KNOW more than the Query > Analyzer - but a Table Scan seems expensive - especially if an Index > exists to help. > > Here is some of what I mean <snip> Your row estimates seem way off. Have you run ANALYZE recently? > EXPLAIN ANALYZE select e.title,e."startDate",e."allDayFlag" > from "Events" e where e."startDate" > '20050930' and e."endDate" < > '20051101' > /* > "Seq Scan on "Events" e (cost=0.00..11706.64 rows=31739 width=34) > (actual time=0.148..1171.191 rows=819 loops=1)" > " Filter: (("startDate" > '2005-09-30 00:00:00'::timestamp without > time zone) AND ("endDate" < '2005-11-01 00:00:00'::timestamp without > time zone))" > "Total runtime: 1173.067 ms" > INDEX "dates_IX" > ON "Events" > USING btree > ("startDate", "endDate"); > */ Have a nice day, -- Martijn van Oosterhout <kleptog@xxxxxxxxx> http://svana.org/kleptog/ > Patent. n. Genius is 5% inspiration and 95% perspiration. A patent is a > tool for doing 5% of the work and then sitting around waiting for someone > else to do the other 95% so you can sue them.
Attachment:
pgpWZ5m1TO7EY.pgp
Description: PGP signature