2017-04-13 63 views
0

我想與客戶的Billing_Address__c場更新聯繫人的Billing_Address__c場每當帳戶的Billing_Address__c被更新。 集命名爲accIds已經包含更新的帳戶的標識。從兩種SOQL查詢方法中,我們可以獲取聯繫人然後進行更新。差的執行時間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

你應該在Salesforce的疊後這一點,但..

對於第一個,執行時間上的不是真的。但它確實幫助managing heap size,但這個問題從失去過去後一些背景。我是這樣寫的,因爲沒有理由爲額外的清單,所以它節省1 List

對於第二個..爲什麼你會有2 for循環?在這種情況下沒有理由,它絕對不會給你速度。 您可以通過使用Limits Class

測試它自己