Re: How to find entries missing in 2nd table?

From: Richard Broersma Jr <rabroersma(at)yahoo(dot)com>
To: Aaron Bono <postgresql(at)aranya(dot)com>
Cc: "Exner, Peter" <Exner(at)his(dot)de>, SQL Postgresql List <pgsql-sql(at)postgresql(dot)org>
Subject: Re: How to find entries missing in 2nd table?
Date: 2006-07-13 16:33:52
Message-ID: 20060713163352.65195.qmail@web31801.mail.mud.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

> > > > SELECT controller_id FROM control
> > > > WHERE controller_id NOT IN
> > > > (SELECT DISTINCT controller_id FROM datapack);
> > > The DISTINCT is not necessary. I have heard with Oracle that DISTINCT
> > is a
> > > huge performance problem. Is that true on PostgreSQL also?
> >
> > From my experience, it does not preform as well as the standard group by
> > clause. I noticed a ~20%
> > increase in query run times.
>
>
>
> So in that case this would be better:
>
> SELECT controller_id FROM control
> WHERE controller_id NOT IN
> (SELECT controller_id FROM datapack);
>
> or
>
> SELECT controller_id FROM control
> WHERE controller_id NOT IN
> (SELECT controller_id FROM datapack GROUP BY controller_id);

Well in this case, the group by or distinct is simple not needed for the query to preform
correctly. The additional group by clause in the second query could cause it to preform
additional processing which "may" cause it to preform slower.

Regards,

Richard Broersma Jr.

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Daniel Caune 2006-07-13 22:50:01 Trigger, record "old" is not assigned yet
Previous Message Aaron Bono 2006-07-13 16:25:03 Re: How to find entries missing in 2nd table?