How to optimize an update query:

```
UPDATE frst_usage vfm1 SET
  (vfm1.account_dn,
   vfm1.usage_date,
   vfm1.country,
   vfm1.feature_name,
   vfm1.hu_type,
   vfm1.make,
   vfm1.region,
   vfm1.service_hits,
   vfm1.maint_last_ts,
   vfm1.accountdn_hashcode) = (
    SELECT
      (SELECT vst.account_dn FROM services_track vst WHERE vst.accountdn_hashcode = vrd1.account_dn_hashcode AND rownum = 1),
      min(usage_date),
      country,
      feature_name,
      hu_type,
      make,
      region,
      service_hits,
      SYSDATE,
      account_dn_hashcode
    FROM raw_data vrd1
    WHERE vrd1.vin_hashcode = vfm1.vin_hashcode
          AND vrd1.usage_date IS NOT NULL AND rownum = 1
    GROUP BY account_dn, country, feature_name, hu_type, make, region, service_hits, vfm1.maint_last_ts, account_dn_hashcode
  );

```

the tables have indexes on all the columns available in the where conditions.

Still the execution is taking more than 4 hours. Below is the explain plan

[![following is the execution plan of the query](https://i.stack.imgur.com/0cLg1.png)](https://i.stack.imgur.com/0cLg1.png)

From the execution plan i could see that the select is good but the update is consuming more time resources, Is there a way i could optimize this.