X-Original-To: pgsql-sql@postgresql.org Received: from serwer.skawsoft.com.pl (serwer.skawsoft.com.pl [213.25.37.66]) by postgresql.org (Postfix) with ESMTP id 60A13475F39 for ; Thu, 6 Mar 2003 01:41:55 -0500 (EST) Received: from lamer.pl (localhost [127.0.0.1]) by serwer.skawsoft.com.pl (Postfix) with ESMTP id 4B2622B898; Thu, 6 Mar 2003 07:39:53 +0100 (CET) From: "Tomasz Myrta" To: "James Cooper" , "sql" Subject: Re: INTERSECT / where id IN (etc..) Date: Thu, 6 Mar 2003 07:39:53 +0800 Message-Id: <20030306073953.M77564@klaster.net> In-Reply-To: <003701c2e37a$fe0bb2d0$c900a8c0@jax> References: <003701c2e37a$fe0bb2d0$c900a8c0@jax> X-Mailer: Open WebMail 1.62 20020221 X-OriginatingIP: 217.96.97.171 (jasiek) MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-2 X-Archive-Number: 200303/165 X-Sequence-Number: 12205 > Greetings. > > I was wondering if somone out there could shed some light on a query > performance issie I have. I have a large lookup table that I query > with nested selects to gain the INTERSECT result from. > > the bigger this table gets the slower the performance. > > 1. is creating a temp table and only intersecting from this a good idea? > > 2. does having a where clause in your select before your nested > intersects change the amount of work the query > > i.e. select person_id from person where person_id < 5000 And > person_id IN as opposed to select person_id from person where > person_id IN(etc) > > thoughts? person_id<5000 probably won't help - postgres will use index on exact person_id if possible. Anyway - for large queries try change IN (...) into EXISTS (...), or just into explicit join if possible. IN clause is rather slow for bigger amount of data. Regards, Tomasz Myrta