Re: [NOVICE] Bad Query?? Extremely slow response - Mailing list pgsql-sql

From Josh Berkus
Subject Re: [NOVICE] Bad Query?? Extremely slow response
Date
Msg-id web-821043@davinci.ethosmedia.com
Whole thread Raw
List pgsql-sql
Patrick,

This belongs on the SQL list, so I'm copying it there.

> HEELLLLPPPPPPP.  I have this query which ran less than 20 seconds on
>  my
> 500mhz MS SQL 2000 server with 192 megs ram.  When I try to run this
>  on my
> Postgres box which has dual 750mhz with 500 mg ram, it takes 3+ mins.
>   If I
> run from PgAdminII, the app freezes.  If I use a WHERE clause, data
>  comes
> back extremely fast.
> 
> 
> SELECT c.itemnumber, c.mbmcolorcode, c.mbmsizedesc, c.mbmrange,
>  c.upc,
> c.isavailable, c.totaloh, sum(c.mcoh) AS mcoh, c.backorder, c.oo,
>  c.cost,
> c.retail, c.feddept, c.description, c.mbmdiv, c.mbmdept, c.mbmclass,
>  sum
> (((c.mcoh + c.oo) - c.backorder)) AS totalavailable, c.pending_picks,
> c.pending_putaways, c.transfer_suspense, c.reserved, c.oo_lt_30_days,
> c.oo_30_60_days, c.oo_gt_60_days, c.last_receipt, sum((c.totaloh -
> (((c.pending_picks + c.transfer_suspense) + c.reserved) +
>  c.backorder))) AS
> avail, s.pid
> FROM (cheshire_data c LEFT JOIN sku_non_inh s ON (((c.upc = s.upc)
>  AND
> (c.itemnumber = s.itemnumber))))
> GROUP BY c.itemnumber, c.mbmcolorcode, c.mbmsizedesc, c.mbmrange,
>  c.upc,
> c.cost, c.retail, c.feddept, c.description, c.mbmdiv, c.mbmdept,
> c.mbmclass, c.totaloh, c.backorder, c.oo, c.isavailable,
>  c.pending_picks,
> c.pending_putaways, c.transfer_suspense, c.reserved, c.oo_lt_30_days,
> c.oo_30_60_days, c.oo_gt_60_days, c.last_receipt, s.pid;
> 
> SCAN>>>
> Aggregate  (cost=117164.97..130210.52 rows=18636 width=189)
>   ->  Group  (cost=117164.97..128812.78 rows=186365 width=189)
>         ->  Sort  (cost=117164.97..117164.97 rows=186365 width=189)
>               ->  Merge Join  (cost=0.00..55710.79 rows=186365
>  width=189)
>                     ->  Index Scan using xie2cheshire_dataitem on
> cheshire_data c  (cost=0.00..8003.01 rows=186365 width=161)
>                     ->  Index Scan using xie2sku_non_inhitm on
>  sku_non_inh
> s  (cost=0.00..5774.53 rows=190048 width=28)

That's odd.  You must be missing an index somewhere.
- Do you have indexes on itemnumber and upc on both tables?  Are theyunique where applicable?
- You're showing a huge cost on aggregation.  How many rows are in thecheshire_data table?
- Your indication that the same query works fast with a where clausemay be a sign that you need to increase
psotmaster'ssort_memparameter.
 

-Josh

______AGLIO DATABASE SOLUTIONS___________________________                                      Josh Berkus Complete
informationtechnology      josh@agliodbs.com  and data management solutions       (415) 565-7293 for law firms, small
businesses       fax 621-2533   and non-profit organizations.      San Francisco
 


pgsql-sql by date:

Previous
From: Tom Lane
Date:
Subject: Re: Fw: Re: 7.0.3 pg_dump -> segmentation fault!
Next
From: Bruce Momjian
Date:
Subject: Re: ERROR (Bug?) in RULE processing ?