Re: [SQL] How to optimize a query...
От | secret |
---|---|
Тема | Re: [SQL] How to optimize a query... |
Дата | |
Msg-id | 36E691DC.3EA90B99@kearneydev.com обсуждение исходный текст |
Ответ на | How to optimize a query... (secret <secret@kearneydev.com>) |
Список | pgsql-sql |
secret wrote: > I originally had this query with an OR clause instead of the UNION, > which made it amazingly impossibly slow, with the UNION it's far faster > however it's still very slow,(10,000+ rows in both stables), is there a > way to speed this up? I have BTREE indexes on all concerned fields of > the tables, but it doesn't seem to use any of them... > > I have another query that joins the result of this with 5 other > tables, unfortunately that one takes like 10 minutes... Any suggestions > on optimizations would be very appreciated. > > ftc=> explain > ftc-> select po_id,ticket_pk > ftc-> from tickets,po > ftc-> where po_id=material_po > ftc-> union > ftc-> select po_id,ticket_pk > ftc-> from tickets,po > ftc-> where po_id=trucking_po > ftc-> ; > NOTICE: QUERY PLAN: > > Unique (cost=4744.05 size=0 width=0) > -> Sort (cost=4744.05 size=0 width=0) > -> Append (cost=4744.05 size=0 width=0) > -> Hash Join (cost=2372.03 size=11659303 width=12) > -> Seq Scan on tickets (cost=849.03 size=19213 > width=8) > -> Hash (cost=0.00 size=0 width=0) > -> Seq Scan on po (cost=528.98 size=10848 > width=4) > -> Hash Join (cost=2372.03 size=13838477 width=12) > -> Seq Scan on tickets (cost=849.03 size=19213 > width=8) > -> Hash (cost=0.00 size=0 width=0) > -> Seq Scan on po (cost=528.98 size=10848 > width=4) > > EXPLAIN I'm having a lot of problems with performance under PostgreSQL, it seems most of my major queries arn't using indexes(as above)... tickets has 15k tables, 10k tables... The above query takes about 4 minutes... Unfortunately I need to add in joins to about 5 tables.... If I add one more table it's 10 minutes... 2? Who knows, I know by 5 it's unacceptable, can anyone please give me some advise on what my problems might be with queries? I've done VACUUM ANALYZE ... I didn't used to do that, could it be missing data from way back? Should I reload the entire database? --David
В списке pgsql-sql по дате отправления: