Records Number

Started by Enrico Pirozziabout 17 years ago5 messagesgeneral
Jump to latest
#1Enrico Pirozzi
sscotty71@gmail.com

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

#2Richard Huxton
dev@archonet.com
In reply to: Enrico Pirozzi (#1)
Re: Records Number

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

#3Enrico Pirozzi
sscotty71@gmail.com
In reply to: Richard Huxton (#2)
Re: Records Number

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

#4Thomas Kellerer
spam_eater@gmx.net
In reply to: Richard Huxton (#2)
Re: Records Number

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

#5Tom Lane
tgl@sss.pgh.pa.us
In reply to: Thomas Kellerer (#4)
Re: Records Number

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