Re: [NOVICE] Bad Query?? Extremely slow response
От | Josh Berkus |
---|---|
Тема | Re: [NOVICE] Bad Query?? Extremely slow response |
Дата | |
Msg-id | web-821043@davinci.ethosmedia.com обсуждение исходный текст |
Список | 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 по дате отправления: