Re: Another seq scan instead of index question
| От | Tom Lane |
|---|---|
| Тема | Re: Another seq scan instead of index question |
| Дата | |
| Msg-id | 8140.997200701@sss.pgh.pa.us обсуждение исходный текст |
| Ответ на | Another seq scan instead of index question (Nicholas Piper <nick@nickpiper.co.uk>) |
| Ответы |
Re: Another seq scan instead of index question
|
| Список | pgsql-general |
Nicholas Piper <nick@nickpiper.co.uk> writes:
> There are 4210874 rows, which is a lot compared to the expected rows
> returned, so why does it still use seq scan ?
Well, no, it isn't "a lot". The row estimate is just about 1% of the
total rows, which suggests strongly that you're getting a default
selectivity estimate rather than anything real. Note also that you have
about 100 rows per disk page (4210874/41232). So it's estimating that
it will need to fetch about one row out of every page, on which basis
the indexscan looks pretty unattractive --- it can't save any I/O.
Your real problem is the bogus selectivity estimate. What version
are you running? If 7.0, see contrib/likeplanning/. If 7.1, I'd
be interested to see what you get from
select attname,attdispersion,s.*
from pg_statistic s, pg_attribute a, pg_class c
where starelid = c.oid and attrelid = c.oid and staattnum = attnum
and relname = 'cdsongs';
regards, tom lane
В списке pgsql-general по дате отправления: