Re: Se puede obtener el total de registros de unatabla sin select count(*)?

From: "Raul Andres Duque" <raulandresduque(at)hotmail(dot)com>
To: "Alvaro Herrera" <alvherre(at)commandprompt(dot)com>, "Silvio Quadri" <silvioq(at)gmail(dot)com>
Cc: Julio Cesar Sánchez González <knowhow(at)sistemasyconectividad(dot)com(dot)mx>, <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Se puede obtener el total de registros de unatabla sin select count(*)?
Date: 2008-01-29 18:26:31
Message-ID: BAY135-DAV914619589D95FFF5C52F0BA350@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


----- Original Message -----
From: "Alvaro Herrera" <alvherre(at)commandprompt(dot)com>
To: "Silvio Quadri" <silvioq(at)gmail(dot)com>
Cc: "Julio Cesar Sánchez González" <knowhow(at)sistemasyconectividad(dot)com(dot)mx>;
<pgsql-es-ayuda(at)postgresql(dot)org>
Sent: Tuesday, January 29, 2008 9:15 AM
Subject: Re: [pgsql-es-ayuda] Se puede obtener el total de registros de
unatabla sin select count(*)?

> Silvio Quadri escribió:
>
>> select relname, reltuples from pg_class c, pg_namespace n
>> where relname = 'nombre de tabla'
>> and relnamespace = n.oid and nspname = any( current_schemas(false) );
>>
>> OJO: Creo que reltuples es la cantidad de registros estimados. No confíes
>> 100% en él, ya que entiendo que lo usa para cuestiones estadísticas.
>
> Yo iba a proponer algo parecido pero que sirve en más circunstancias:
> pasarle un EXPLAIN a la consulta y luego extraer del nodo mas externo la
> parte que dice "rows=". Creo que Tom Lane publicó una función en
> plpgsql que hace eso, pero no la encuentro. No debería ser muy difícil
> de hacer, creo.
>
> Como Silvio dice, hay que usarlo con cuidado: es sólo para propósitos
> estimativos.
>

"Dentro de mi ignorancia" ... ¿cual es la razón para mantener un estimado de
la cantidad de registros de una tabla y no la cantidad real? Supondría que
sería fácil sumar y restar de una "Estadistica de la tabla" cuando se
realiza un insert/delete sobre la tabla y con esto saber la cantidad real
con orden 1. Además es muy común que se requiera la cantidad de registros en
una tabla.

Perdon si esta sugerencia es muy "tonta" para los hackers de postgresql.

Atentamente,

RAUL DUQUE
Bogotá, Colombia

> --
> Alvaro Herrera
> http://www.CommandPrompt.com/
> PostgreSQL Replication, Consulting, Custom Development, 24x7 support
> --
> TIP 5: ¿Has leído nuestro extenso FAQ?
> http://www.postgresql.org/docs/faqs.FAQ.html

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Ernesto Quiñones 2008-01-29 18:52:07 busqueda no esta usando un indice
Previous Message Alvaro Herrera 2008-01-29 15:12:10 Re: Problema de Performance