title: Faster DELETE w/ JOIN query
body: <p>I have this query in Oracle 10g:</p>
  
  <pre><code> DELETE FROM "BMAN_TP1"."CELLS_ITEM" TABLE1
   WHERE EXISTS (
       SELECT "CELLS_ITEM".*
       FROM "BMAN_TP1"."CELLS_ITEM"
       INNER JOIN "BMAN_TP1"."CELLS" ON ("CELLS_ITEM"."SET_ID"="CELLS"."SET_ID") AND ("CELLS_ITEM"."META_CELL_ID"="CELLS"."META_CELL_ID")
       INNER JOIN "BMAN_TP1"."META_CELLS" ON ("CELLS"."META_CELL_ID"="META_CELLS"."META_CELL_ID")
       WHERE ("META_CELLS"."UDA_ID" = variable)
       AND (TABLE1."SET_ID" = "CELLS_ITEM"."SET_ID")
       AND (TABLE1."META_CELL_ID" = "CELLS_ITEM"."META_CELL_ID")
  )
  </code></pre>
  
  <p>which currently takes about 10 sec for 50K records to delete (and about 100K records in the table)</p>
  
  <p>I know that it repeats 100K times the select query, that slows it down a lot.<br>
  Also TABLE1 has a two-fields PK, which makes the things more complicated.</p>
  
  <p>Any ideas to make it faster?</p>
  
  <p>EDIT:</p>
  
  <p>Tried this one but it takes almost the same:</p>
  
  <pre><code>DELETE FROM "BMAN_TP1"."CELLS_ITEM" TABLE1
  WHERE EXISTS (
      SELECT "META_CELL_ID"
      FROM "BMAN_TP1"."META_CELLS"
      WHERE ("META_CELLS"."UDA_ID"=55823)
      AND (TABLE1."META_CELL_ID" = "META_CELLS"."META_CELL_ID")
  )
  </code></pre>