X-Original-To: pgsql-performance-postgresql.org@localhost.postgresql.org Received: from localhost (unknown [200.46.204.144]) by svr1.postgresql.org (Postfix) with ESMTP id 28DB05636A for ; Tue, 8 Mar 2005 12:22:46 +0000 (GMT) Received: from svr1.postgresql.org ([200.46.204.71]) by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024) with ESMTP id 47260-07 for ; Tue, 8 Mar 2005 12:22:40 +0000 (GMT) Received: from pns.mm.eutelsat.org (pns.mm.eutelsat.org [194.214.173.227]) by svr1.postgresql.org (Postfix) with ESMTP id 245AD562E9 for ; Tue, 8 Mar 2005 12:22:38 +0000 (GMT) Received: from nts-03.mm.eutelsat.org (localhost [127.0.0.1]) by pns.mm.eutelsat.org (8.11.6/linuxconf) with ESMTP id j28DPhV14866; Tue, 8 Mar 2005 14:25:43 +0100 Received: from [127.0.0.1] (accesspoint.mm.eutelsat.org [194.214.173.4]) by nts-03.mm.eutelsat.org (8.11.6/linuxconf) with ESMTP id j28CMeR32523; Tue, 8 Mar 2005 13:22:40 +0100 Message-ID: <422D9904.5010904@bigfoot.com> Date: Tue, 08 Mar 2005 13:22:28 +0100 From: Gaetano Mendola User-Agent: Mozilla Thunderbird 1.0 (Windows/20041206) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Richard Huxton Cc: Gaetano Mendola , "pgsql-performance@postgresql.org" Subject: Re: bad plan References: <422D7F23.7000109@bigfoot.com> <422D8F0E.8000906@archonet.com> In-Reply-To: <422D8F0E.8000906@archonet.com> X-Enigmail-Version: 0.90.1.1 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at hub.org X-Spam-Status: No, hits=0.235 tagged_above=0 required=5 tests=AWL X-Spam-Level: X-Archive-Number: 200503/126 X-Sequence-Number: 10831 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Richard Huxton wrote: > Gaetano Mendola wrote: > >> running a 7.4.5 engine, I'm facing this bad plan: >> >> empdb=# explain analyze SELECT >> name,url,descr,request_status,url_status,size_mb,estimated_start,request_time_stamp >> >> empdb-# FROM v_sc_user_request >> empdb-# WHERE >> empdb-# login = 'babinow1' >> empdb-# LIMIT 10 ; > > >> -> Subquery Scan vsp (cost=985.73..1016.53 >> rows=1103 width=12) (actual time=25.328..1668.754 rows=493 loops=31) >> -> Merge Join (cost=985.73..1011.01 >> rows=1103 width=130) (actual time=25.321..1666.666 rows=493 loops=31) >> Merge Cond: ("outer".id_program = >> "inner".id_program) > > > The problem to address is in this subquery. That's a total of 31 x > (1668.754 - 25.328) = 50seconds (about). > > Since your query is so simple, I'm guessing v_sc_user_request is a view. > Can you provide the definition? Of course: CREATE OR REPLACE VIEW v_sc_user_request AS SELECT * FROM v_sat_request vsr LEFT OUTER JOIN v_sc_packages vsp USING ( id_package ) WHERE vsr.request_time > now() - '1 month'::interval AND vsr.expired = FALSE ORDER BY id_sat_request DESC ; CREATE OR REPLACE VIEW v_sc_packages AS SELECT * FROM v_programs vpr, v_packages vpk, v_sequences vs WHERE ------------ JOIN ------------- vpr.id_program = vs.id_program AND vpk.id_package = vs.id_package AND ------------------------------- vs.estimated_start IS NOT NULL ; CREATE OR REPLACE VIEW v_sat_request AS SELECT * FROM sat_request sr, url u, user_login ul WHERE ---------------- JOIN --------------------- sr.id_url = u.id_url AND sr.id_user = ul.id_user ------------------------------------------- ; that column expired was added since yesterday Regards Gaetano Mendola -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.5 (MingW32) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFCLZkD7UpzwH2SGd4RAv8/AKCA5cNfu6vEKZ6m/ke1JsVRdsOTXQCbBMt4 ZPTFjwyb52CrFxdUTD6gejs= =STzz -----END PGP SIGNATURE-----