Thread: Postgresql 8.0 RC1 not using indexes

Postgresql 8.0 RC1 not using indexes

From
Tony Caduto
Date:
Hi,
I just installed 8.0 RC1 and then restored my database which was working
perfectly on 7.4.5.
I have a function that imports rows from a comma seperated file and on
7.4.5 using this same function I could get around 1000 rows every 2.5
seconds, now with 8.0 RC1 this has gone way up and it seems to be
because it is not using the indexes defined on the table.
The reason I believe this is that as the progresses the size of the
table increases and the time for every 1000 rows grows.
by the time I am up to 20000 rows it is taking over 30 seconds per 1000
rows.
I commit the transaction after every 1000 and on 7.4.5  there were no
issues.

The function in question does some selects on the table that is being
inserted and without the indexes working it ends up taking a very long time.

unfortunatly I can't supppy any of the plpgsql function code.

Re: Postgresql 8.0 RC1 not using indexes

From
Michael Fuhr
Date:
On Fri, Dec 17, 2004 at 10:28:20PM -0600, Tony Caduto wrote:

> The function in question does some selects on the table that is being
> inserted and without the indexes working it ends up taking a very long time.
>
> unfortunatly I can't supppy any of the plpgsql function code.

Can you at least post the EXPLAIN ANALYZE output for a query that
you think isn't using an index?

--
Michael Fuhr
http://www.fuhr.org/~mfuhr/

Re: Postgresql 8.0 RC1 not using indexes

From
Tom Lane
Date:
Tony Caduto <tony.caduto@amsoftwaredesign.com> writes:
> I just installed 8.0 RC1 and then restored my database which was working
> perfectly on 7.4.5.
> I have a function that imports rows from a comma seperated file and on
> 7.4.5 using this same function I could get around 1000 rows every 2.5
> seconds, now with 8.0 RC1 this has gone way up and it seems to be
> because it is not using the indexes defined on the table.

Have you done an ANALYZE or VACUUM ANALYZE since loading the data?

            regards, tom lane

Re: Postgresql 8.0 RC1 not using indexes

From
Tony Caduto
Date:
Hi Tom,
Yes I did a vacuum analyse right away.  As a  further test I  restored
the exact same data on another 7.4.5 server and  even without a  vacuum
analyse the importer program worked as expected(fast).
I posted some more info including screen shots of the importer running
in verbose mode on a 7.4.5 and a 8.0rc1 server, and much more info.  I
actually think I have it narrowed down to a select count(*)  in my
importer function.  It seems that the select count(*) is not using the
indexes that I have defined.  This same process has been in production
since June 04 and the indexes have not  been changed or deleted.   On
monday I am going to replace the count(*) with a for select and a
counter variable and see if the slowness goes away.  It really does seem
to be some issue/bug maybe or  just a difference in the 8.0 engine.

Thanks,

Tony Caduto


Tom Lane wrote:

>Tony Caduto <tony.caduto@amsoftwaredesign.com> writes:
>
>
>>I just installed 8.0 RC1 and then restored my database which was working
>>perfectly on 7.4.5.
>>I have a function that imports rows from a comma seperated file and on
>>7.4.5 using this same function I could get around 1000 rows every 2.5
>>seconds, now with 8.0 RC1 this has gone way up and it seems to be
>>because it is not using the indexes defined on the table.
>>
>>
>
>Have you done an ANALYZE or VACUUM ANALYZE since loading the data?
>
>            regards, tom lane
>
>
>
>
>