I don't know if this will help.  In my days with Oracle and Sybase, it use
to work for both.  Just give PG a hint like this
select count(*) from test where id > 0;

You can try it while you wait for other on the list with more knowledge for
a different idea.

Mel


On Sun, Oct 11, 2009 at 4:26 AM, 旭斌 裴 <peixu...@yahoo.com.cn> wrote:

>
> I have a 30,000,000 records table, counts the record number to need for 40
> seconds.
> The table has a primary key on column id;
>
> perf=# explain select count(*) from test;
> ...
> -----------------------------------------
> Aggregate (cost=603702.80..603702.81 rows=1 width=0)
>   -> Seq scan on test (cost=0.00..527681.04 rows=30408704 width=0)
> ...
> perf=# select count(*) from test;
> count
> ------------
> 30408704
>
> perf=#
>
>
> The postgresql database uses the table full scan.but in oracle, the similar
> SQL uses the index full scanning,speed quickly many than postgresql.
>
> postgresql's optimizer whether to have the necessity to make the
> adjustment?
>
>
>
> ------------------------------
> 好玩贺卡等你发,邮箱贺卡全新上线!<http://cn.rd.yahoo.com/mail_cn/tagline/card/*http://card.mail.cn.yahoo.com/>

Reply via email to