Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-es-ayuda by date

Next:From: Nahum CastroDate: 2008-01-29 22:24:23
Subject: Re: Conexion Postgis - php/mapscript
Previous:From: =?iso-8859-1?Q?Jos=E9_Ferm=EDn_Francisco_Ferreras?=Date: 2008-01-29 22:04:19
Subject: no me estan llegando los correos

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group