Thread: Records Number

Records Number

From
Enrico Pirozzi
Date:
Hi all,
I have a little problem,

I would like to execute

select * from table

and i would like to retrieve the number of records without make

select count(*) from table

I could use directly the table instead of select, and in this this
case I'm searching for
something like the reltuples field in the pg_class table, but I need
this value in real time.

Any suggestion?

Enrico
--
That's one small step for man; one giant leap for mankind

Enrico Pirozzi
Tel.  +39 0861 1855771
Mob.+39 328 4164437
Fax  +39 0861 1850310
www.enricopirozzi.info
info@enricopirozzi.info
Skype sscotty71

Re: Records Number

From
Richard Huxton
Date:
Enrico Pirozzi wrote:
> and i would like to retrieve the number of records without make
>
> select count(*) from table
>
> I could use directly the table instead of select, and in this this
> case I'm searching for
> something like the reltuples field in the pg_class table, but I need
> this value in real time.

If you want an accurate, up-to-date count then you'll need to use
count(*) or have a trigger keep a summary-count for you. A simple
implementation will reduce concurrency to writes on that table however.
Lots of discussion in the mailing-list archives on this.

--
  Richard Huxton
  Archonet Ltd

Re: Records Number

From
Enrico Pirozzi
Date:
> If you want an accurate, up-to-date count then you'll need to use
> count(*) or have a trigger keep a summary-count for you. A simple
> implementation will reduce concurrency to writes on that table however.

Yes I solved by a trigger....

> Lots of discussion in the mailing-list archives on this.

Thank you for your time

Enrico




--
That's one small step for man; one giant leap for mankind

Enrico Pirozzi
Tel.  +39 0861 1855771
Mob.+39 328 4164437
Fax  +39 0861 1850310
www.enricopirozzi.info
info@enricopirozzi.info
Skype sscotty71

Re: Records Number

From
Thomas Kellerer
Date:
Richard Huxton, 17.03.2009 13:26:
> Enrico Pirozzi wrote:
>> and i would like to retrieve the number of records without make
>>
>> select count(*) from table
>>
>> I could use directly the table instead of select, and in this this
>> case I'm searching for
>> something like the reltuples field in the pg_class table, but I need
>> this value in real time.
>
> If you want an accurate, up-to-date count then you'll need to use
> count(*) or have a trigger keep a summary-count for you. A simple
> implementation will reduce concurrency to writes on that table however.
> Lots of discussion in the mailing-list archives on this.
>
Can a trigger solution really give an accurate count in a concurrent insert/delete scenario?

Thomas

Re: Records Number

From
Tom Lane
Date:
Thomas Kellerer <spam_eater@gmx.net> writes:
> Can a trigger solution really give an accurate count in a concurrent insert/delete scenario?

In principle yes, but AFAIK no one has really coded it up in full
detail.  See the design that was hashed out in some previous
mailing-list thread, involving delta-count records entered into
a tracking table by each transaction that inserts or deletes.

            regards, tom lane