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

From: Julio Cesar Sánchez González <knowhow(at)sistemasyconectividad(dot)com(dot)mx>
To: Raul Andres Duque <raulandresduque(at)hotmail(dot)com>
Cc: Alvaro Herrera <alvherre(at)commandprompt(dot)com>, Silvio Quadri <silvioq(at)gmail(dot)com>, 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 22:18:18
Message-ID: 479FA62A.7080302@sistemasyconectividad.com.mx
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Raul Andres Duque wrote:
>
> ----- 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
>
> --
> TIP 2: puedes desuscribirte de todas las listas simultáneamente
> (envía "unregister TuDirecciónDeCorreo" a majordomo(at)postgresql(dot)org)
>
Muchas gracias a todos por sus respuestas, yo tambien estaba pensando
escribir algun trigger que me incrementara o decrementara el valor del
numero total de registros pero me imagino que es mejor asi como estimado
ya que evita la sobrecarga de actualizacion en paralelo mientras se
realizar muchos inserciones en una tabla x, me imagino que el backend ha
de realizar este estimado en un momento en el que no tiene mucho trabajo
y por eso ese dato no es actualizado en tiempo real, aunque es una
supocision solamente y seria bueno que alguien con mas experiencia nos
platicara al respecto.

De antemano muchas gracias nuevamente.

--
Saludos,

Julio Cesar Sánchez González.

--
Ahora me he convertido en la muerte, destructora de mundos.
Soy la Muerte que se lleva todo, la fuente de las cosas que vendran.

www.sistemasyconectividad.com.mx http://darkavngr.blogspot.com/

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Nahum Castro 2008-01-29 22:24:23 Re: Conexion Postgis - php/mapscript
Previous Message José Fermín Francisco Ferreras 2008-01-29 22:04:19 no me estan llegando los correos