From: | Gregorio Diaz <gregorio_diaz(at)yahoo(dot)com> |
---|---|
To: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Inquietud sobre Count() |
Date: | 2006-01-19 20:21:27 |
Message-ID: | 20060119202128.88425.qmail@web36201.mail.mud.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Ok. Entendido.
Aunque me sigue pareciendo bastante complicado, pense
que la solución podría ser más trivial. Por ejemplo
que pasa si la
base de datos se accede desde un único equipo? Aquí no
se necesita MVCC.
Gracias
Gregorio Diaz G.
Bogotá, Colombia
--- Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
escribió:
> Gregorio Diaz escribió:
>
> > Existe algo mejor para determinar el numnero de
> registros en una
> > tabla?
>
> En general si; hay varias maneras. Depende de si lo
> que quieres es una
> cuenta exacta, o si te basta con una aproximacion.
> En este ultimo caso,
> lo que se sugiere a veces es hacer un ANALYZE y
> luego pedirle al
> optimizador que te entregue un plan de ejecucion de
> seqscan para esa
> tabla (EXPLAIN); dentro del plan viene la estimacion
> de la cantidad de
> tuplas para esa tabla. Incluso puedes usar
> condiciones WHERE, si la
> distribucion se parece a una normal, uniforme, etc
> (si los datos tienen
> "mala" distribucion, esto dara malos resultados para
> algunos casos por
> razones que deberian ser obvias).
>
> Si no te basta con una aproximacion, lo mas
> frecuente es usar triggers
> para mantener la cuenta en una tabla aparte. Para
> que funcione bien en
> forma concurrente, se sugiere usar una tabla que
> almacene un "total" y
> ademas "deltas"; cada vez que haces un cambio en la
> tabla principal,
> agregas un delta a esa tabla. Cuando quieres una
> cuenta total, tomas el
> total y le sumas/restas los deltas. Y de vez en
> cuando (digamos una vez
> al dia o como sea), tomas todos los deltas, los
> sumas, los guardas como
> total y los borras.
>
> > Porque Count no usa los indices o algo asi ?
>
> Por razones de MVCC. Es mucho mas costoso de lo que
> parece.
>
> --
> Alvaro Herrera
> http://www.PlanetPostgreSQL.org
> "Siempre hay que alimentar a los dioses, aunque la
> tierra esté seca" (Orual)
>
> ---------------------------(fin del
> mensaje)---------------------------
> TIP 1: para suscribirte y desuscribirte, visita
> http://archives.postgresql.org/pgsql-es-ayuda
>
__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
Regístrate ya - http://correo.espanol.yahoo.com/
From | Date | Subject | |
---|---|---|---|
Next Message | Gregorio Diaz | 2006-01-19 20:24:53 | RE: Inquietud sobre Count() |
Previous Message | Jaime Casanova | 2006-01-19 19:38:56 | Re: Programacion Backup |