I'm running an update on a partitioned table in Oracle 10g and though it's making use of the required indeces and partitions, however the query analyzer comes back stating it's going to take days to complete. Each partition contains approximately 20 million rows, and I'm scratching my head. I did note a couple of articles posted on bulk updates, but I'm not sure if this would work as I would think it should. One would think that with logging off the table should update in a much shorter period of time. Any insight and assistance would be appreciated.
update raw_armylog a
set (a.pr_niin,a.pr_fsc) =
(select nvl(b.pr_niin,nvl(c.pr_niin,a.niin)),nvl(b.pr_fsc,nvl(c.pr_fsc,nvl(a.fsc,''))) from mdr423 b,mdr462 c
where (b.niin (+) = a.niin and b.month (+) = a.month and b.year(+) = a.year) and
(c.niin (+) = a.niin and c.month (+) = a.month and c.year(+) = a.year)) WHERE a.fy=2004;