Is it possible to optimize a correlated subquery in case of updation.Is there any type of SQL which can replace these type of SQL.My sql is given below

update table_A
set (A.col1l, A.col12, A.col3) =
((select B.col1l, B.col12, B.col3 from table_B
where B.site_id = A.site_id)) ;

[Note there is a index on B.site_id]
while the table_A has around 71columns & 519385 records
while table_B has around 5 columns & 357548 records.The time for updation is around 17 mins.when I created a temporary table of table_A with 4 columns (ie all columns which is used for updation or used in join condition) then the time for updating the temporay table is just 2 minutes.I Hope this difference in timing for updation is due to the differenece in size of the rows between the temporary table & table_A.Is there any way in informix to achieve updation of table_A with the same speed for temporary table by increasing the row cache ?.How do i optimize this type of sql