Getting CPU time limit exceeded issue in trigger level.
Trigger code:
list<depot__c> depotList = new list<depot__c>();
for(Depot__c depot : Trigger.new){
depotList.add(depot);
}
Map<Id, Asset> mapOfAsset = new Map<Id, Asset>([select id, some other required fields from Asset where (assetDepot__c IN: depotList) and (SLA__c like '%4%')]);
if(mapOfAsset.size() > 0){
for(depot__c depotsasset : depotList){
for(Asset assetid : mapOfAsset.values())
{
if(depotsasset.Id == assetid.assetDepot__c){
assetid.assetNearbyDepot__c = null;
assetUpdate.add(assetid);
}
}
}
Map<Id, Object2__c> mapOfObject2 = new Map<Id, Object2__c>([select id, some required fields from Object2__c where obDepot__c IN: depotList]);
if(mapOfObject2.size()>0){
for(Object2__c addressid : mapOfObject2.values()){
addressid.obDepot__c = null;
addressUpdate.add(addressid);
}
}
Map<id, Object3__c> mapOfObject3 = new Map<id, RMAv2__c>([select id, some required fields from RMAv2__c where (object3Depot__c IN: depotList) and (object3Sla__c like '%4%') and (object3Status__c = 'Draft')]);
if(mapOfObject3.size()>0){
for(RMAv2__c rmaid : mapOfRMA.values()){
rmaid.object3Depot__c = null;
rmaUpdate.add(rmaid);
}
}
if(assetUpdate.size()>0){
update assetUpdate; //nearly 600 records
}
if(addressUpdate.size() > 0){
update addressUpdate; //nearly 500 records
}
if(object3Update.size() > 0){
update object3Update; //50 records
}
Nearly updating 1150 records across 3 objects. The code is already using map query to optimize. Is there way out to optimize more?.