Re: Long-running DELETE...WHERE...
| От | Frank Bax |
|---|---|
| Тема | Re: Long-running DELETE...WHERE... |
| Дата | |
| Msg-id | 3.0.6.32.20020115142250.009b3970@pop6.sympatico.ca обсуждение исходный текст |
| Ответ на | Re: Long-running DELETE...WHERE... (Tom Lane <tgl@sss.pgh.pa.us>) |
| Список | pgsql-sql |
At 08:21 PM 1/14/02 -0500, Tom Lane wrote: >jboes@nexcerpt.com (Jeff Boes) writes: >> My situation: table A has 200,000 rows. I've made up a temporary table >> which holds the single-valued primary key for 80,000 rows which I want >> to delete. >> DELETE FROM a WHERE id IN (select ID from tmp LIMIT 800); >> runs for several minutes. > >WHERE ... IN ... is notoriously inefficient. I'd try > > DELETE FROM aa WHERE id = tmp.id; > >which is not standard SQL but should be able to produce a decent plan. Nice alternative. Is there an alternate format for this one: DELETE FROM teamwork WHERE emp NOT IN ( SELECT DISTINCT emp FROM timesheet WHERE lo_shift > (now()-'90days'::interval)) Frank
В списке pgsql-sql по дате отправления: