Thread: update - which way quicker?
Good morning, Tried to compare Table1 based on Table2 . update table1.col = false if table1.pk_cols not in table2.pk_cols For the following two ways, (2) always performs better than (1) right, and I need your inputs. ======================================================================== (1) update table1 set col = false where table1.pk_co1 || table1.pk_col2.... || table1.pk_colN NOT IN (select pk_co1 || pk_col2.... || pk_colN from table2 ) (2) ResultSet(rs) = select pk_col1||pk_col2... || pk_colN from table1 left join table2 using (pk_col1..., pk_colN) where table2.pk_col1 is null Then for each rs record, do: update table1 set col = false where col1||... colN in rs.value Thanks a lot!
On 2008-08-28, at 21:31, Emi Lu wrote: > Good morning, > > Tried to compare Table1 based on Table2 > > . update table1.col = false > if table1.pk_cols not in table2.pk_cols > > > > For the following two ways, (2) always performs better than (1) right, > and I need your inputs. > ====================================================================== > == > (1) update table1 > set col = false > where table1.pk_co1 || table1.pk_col2.... || table1.pk_colN > > NOT IN > > (select pk_co1 || pk_col2.... || pk_colN > from table2 > ) > > (2) ResultSet(rs) = > select pk_col1||pk_col2... || pk_colN > from table1 > left join table2 using (pk_col1..., pk_colN) > where table2.pk_col1 is null > > Then for each rs record, do: > update table1 > set col = false > where col1||... colN in rs.value > > Thanks a lot! > > -- > Sent via pgsql-performance mailing list (pgsql- > performance@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-performance Check EXISTS http://www.postgresql.org/docs/8.3/interactive/functions-subquery.html Serdecznie pozdrawiam Pawel Socha pawel.socha@gmail.com programista/administrator perl -le 's**02).4^&-%2,).^9%4^!./4(%2^3,!#+7!2%^53%2&**y%& -;^[%"`- { a%%s%%$_%ee'