From: | Yasset Perez Riverol <yasset(dot)perez(at)biocomp(dot)cigb(dot)edu(dot)cu> |
---|---|
To: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
Cc: | Silvio Quadri <silvioq(at)gmail(dot)com>, postgres <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Performance y Postgresql.conf |
Date: | 2008-02-12 14:34:09 |
Message-ID: | 200802120934.11703.yasset.perez@biocomp.cigb.edu.cu |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
On Tuesday 12 February 2008 9:43:26 am Alvaro Herrera wrote:
> Yasset Perez Riverol escribió:
> > On Tuesday 12 February 2008 9:28:49 am Alvaro Herrera wrote:
> > > Yasset Perez Riverol escribió:
> > > > Silvio lo que me dices de tener una tabla con la estadistica ya lo
> > > > pense pero sobre 5 millones de [registros] creo que count(*) no debe
> > > > dar un resultado como este:
> > > >
> > > > QUERY PLAN
> > > > ---------------------------------------------------------------------
> > > >---- ------------------------------------------------------ Aggregate
> > > > (cost=200569.48..200569.49 rows=1 width=71) (actual
> > > > time=28574.282..28574.284 rows=1 loops=1)
> > > > -> Seq Scan on tabla1 (cost=0.00..187024.78 rows=5417878
> > > > width=71) (actual time=16.214..19513.222 rows=5417878 loops=1)
> > > > Total runtime: 28574.382 ms
> > > > (3 rows)
> > >
> > > El problema de count(*) se ha discutido muchas veces. La respuesta es
> > > que la unica manera de hacer count(*) es recorrer la tabla completa.
> > > Si te sirve una estimacion en lugar de una cantidad exacta-exacta, se
> > > pueden buscar maneras mas rapidas de encontrar el total.
> > >
> > > El fichero de configuracion es bastante irrelevante.
> > >
> > > En resumen, lo que muestras arriba es correcto y esperable.
> >
> > Que el fichero sea irrelevante significa ?
>
> Significa que para el caso de
> SELECT count(*) from tabla_grande
> no tiene mayor injerencia el fichero. En otros casos sí la tiene.
>
> > Lo pase para para que ver si algunos de ustedes con la experiencia que
> > tienen podian detectar que la combinacion de parametros estuviesen dando
> > algun error de performance ...
>
> Claro. En este caso no es ese el problema.
>
> > pero si dices que las consultas como estas se comportan de
> > esta forma ... te entiendo...
>
> Probé acá con una tabla de ejemplo y tengo un resultado muy similar:
>
> alvherre=# explain analyze select count(*) from yasset;
> QUERY PLAN
> ---------------------------------------------------------------------------
>------------------------------------------------- Aggregate
> (cost=139424.75..139424.76 rows=1 width=0) (actual
> time=24768.338..24768.340 rows=1 loops=1) -> Seq Scan on yasset
> (cost=0.00..126924.60 rows=5000060 width=0) (actual time=12.369..15572.997
> rows=5000000 loops=1) Total runtime: 24768.419 ms
> (3 rows)
>
> (RAID1 de 2 discos SATA, creo que de 7200RPM)
>
> Como te decía, si una cantidad aproximada es suficiente para tus
> propósitos, se puede obtener muy rápido.
De que forma puedo obtener ese estimado que dices tan rapido...
--
Ing. Yasset Pérez Riverol.
Grupo de Bioinformática.
CIGB, La Habana, Cuba.
-------------------------
"La alegría está en la lucha, en el esfuerzo,
en el sufrimiento que supone la lucha y no
en la victoria."
Mahatma Gandhi
From | Date | Subject | |
---|---|---|---|
Next Message | Andres A. Mamani | 2008-02-12 14:37:32 | Ayuda con tuning PostgreSQL 8.3 |
Previous Message | Rodriguez Fernando | 2008-02-12 14:29:44 | Re: Performance y Postgresql.conf |