Re: Trabajando con Grandes BD

From: Oswaldo Hernández <listas(at)soft-com(dot)es>
To: Vida Luz <vlal(at)ns(dot)ideay(dot)net(dot)ni>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Trabajando con Grandes BD
Date: 2007-03-15 16:59:09
Message-ID: 45F97B5D.9010006@soft-com.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Vida Luz escribió:
> Hola Oswaldo, si mejoro, el resultado ahora es:
>
> explain analyze select gr.geren_cod, count(gr.cliente_cod) from (select
> geren_cod, cliente_cod from dm.venta group by geren_cod, cliente_cod) as
> gr group by gr.geren_cod;
> QUERY PLAN
> ----------------------------------------------------------------------------------------------------------------------------------
>
> HashAggregate (cost=191715.06..191717.56 rows=200 width=14) (actual
> time=33709.323..33709.336 rows=3 loops=1)
> -> HashAggregate (cost=190715.06..191115.06 rows=40000 width=14)
> (actual time=33612.347..33665.907 rows=10160 loops=1)
> -> Seq Scan on venta (cost=0.00..180426.04 rows=2057804
> width=14) (actual time=10.260..23092.667 rows=2057804 loops=1)
> Total runtime: 33734.848 ms
> (4 rows)
>
> el problema que tengo, es que usaron un servidor ocn las mismas
> caracteriticas donde esta el postgres, instalaron un SQL Server sobre
> windows 2003 server y ese select sin indexar lo hizo en 1.6 segundos, yo
> nunca he usado MSSQL, solo he usado postgres y el problema que tengo es
> que no tenemos recursos para comprar porductos windows.
>
> Como puedo llegar a obtener el mismo tiempo de MS-SQL para obtener el
> mismo resultado ?
>
>

Una cosa, no soy experto analizando los explain pero me da que esta consulta solo devuelve 3
registros. Por favor dime si es asi.

>
>
> On Thu, 15 Mar 2007, Oswaldo Hernández wrote:
>
>> Vida Luz escribió:
>>> con explain este es el costo que se tiene: aporx unos 2.7 minutos.
>>>
>>>
>>>
>>> c=# explain analyze SELECT count(distinct cliente_cod) FROM dm.venta
>>> GROUP BY geren_cod;
>>> QUERY PLAN
>>>
>>> ---------------------------------------------------------------------------------------------------------------------------------
>>>
>>> GroupAggregate (cost=421813.88..437247.45 rows=3 width=14) (actual
>>> time=159638.993..165536.431 rows=3 loops=1)
>>> -> Sort (cost=421813.88..426958.39 rows=2057804 width=14)
>>> (actual time=152000.054..158792.629 rows=2057804 loops=1)
>>> Sort Key: geren_cod
>>> -> Seq Scan on venta (cost=0.00..180972.04 rows=2057804
>>> width=14) (actual time=3.358..29855.519 rows=2057804 loops=1)
>>> Total runtime: 166281.479 ms
>>> (5 rows)
>>>
>>>
>>
>>
>> Un poco por curiosidad, podrias probar estos select y decirnos si hay
>> diferencias con ese volumen de datos:
>>
>> select
>> gr.geren_cod, count(gr.cliente_cod)
>> from (select geren_cod, cliente_cod from dm.venta group by geren_cod,
>> cliente_cod) as gr
>> group by gr.geren_cod
>>
>>
>> select
>> gr.geren_cod, count(gr.cliente_cod)
>> from (select distinct geren_cod, cliente_cod from dm.venta) as gr
>> group by gr.geren_cod
>>
>>
>> Gracias.
>>
>>
>>
> ---------------------------(fin del mensaje)---------------------------
> TIP 7: no olvides aumentar la configuración del "free space map"
>

--
*****************************************
Oswaldo Hernández
oswaldo (@) soft-com (.) es
*****************************************

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Edwin Quijada 2007-03-15 17:01:03 Re: whit oids
Previous Message Mario 2007-03-15 16:45:52 Re: OT: OK, pero que lenguajes entonces ... ? ( Simbolos dentro de ca denas )