同一逻辑SOQL中执行时间的差异

时间:2017-04-13 14:51:48

标签: triggers salesforce apex soql

每当Account的Billing_Address__c更新时,我想用Account的Billing_Address__c字段更新Contact的Billing_Address__c字段。 名为accIds的集合已包含更新帐户的ID。从两种SOQL查询方法中,我们可以获取联系人然后更新。

首先>>>

for(Contact con : [Select Account.Billing_Address__c,Billing_Address__c FROM Contact where AccountID IN :accIds]){然后更新每个联系人。

第二个>>>

 for(Account acc :  [Select Billing_Address__c,(SELECT Billing_Address__c FROM Contacts) FROM Account where ID IN :accIds]){ 
       for(Contact con : acc.Contacts ) 

然后更新联系人。 执行时间是否存在差异,如果是,哪个更快?

1 个答案:

答案 0 :(得分:1)

您应该在Salesforce Stack中发布此内容,但是..

对于第一个,执行时间并非真的。但它对managing heap size有帮助,但这个问题在上一篇文章中失去了一些背景。我这样写的是因为没有理由这个额外的列表所以它保存了1 List

对于第二个..为什么你会有2个for循环?在这种情况下没有理由,它绝对不会给你速度。 您可以使用Limits Class

自行测试