delete operation with "where XXX in"

From: "Peter Alberer" <h9351252(at)obelix(dot)wu-wien(dot)ac(dot)at>
To: <pgsql-general(at)postgresql(dot)org>
Subject: delete operation with "where XXX in"
Date: 2002-09-23 17:34:06
Message-ID: 000001c26327$6af32830$5be0d089@ekelhardt
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi,

is there a way to speed up a delete operation that currently uses a
"where XX in" clause?

The following query takes quite long:

delete from lr_object_usage where lr_object_usage_id in (
select lr_object_usage_id from lr_locked_objects where timeout_time
< now() and context is not null
);

to get the rows I want to delete into a select query I can simply use

select * from lr_object_usage lrou inner join lr_locked_objects llo
on llo.lr_object_usage_id = lrou.lr_object_usage_id
where llo.timeout_time < now() ;

But how can i rephrase the delete operation to get a fast delete
operation? I tried also to use "exists" instead of "in" but that did not
help either.

Many TIA,

peter

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2002-09-23 17:56:22 Re: delete operation with "where XXX in"
Previous Message Tom Lane 2002-09-23 17:05:42 Re: [SQL] Monitoring a Query