Anti-Pattern: Querying within a Loop

DEX450 - Introductions and Overview

📄 第 333 页 🎬 视频课程

课程章节介绍

同学们,今天我们来聊聊一个在Salesforce开发中非常常见但需要特别注意的问题——在循环内进行查询。这个做法被称为“反模式”,也就是说,它是一种不太好的编程习惯,可能会导致你的代码出现问题。 首先,让我们看看这段代码。这段代码的目的是在循环中查询每个课程参与者的信息,并收集他们的电子邮件地址。看起来好像没什么问题,对吧?但实际上,这里有一个很大的隐患。 问题出在循环内的查询。每次循环执行时,都会触发一次数据库查询。想象一下,如果你有100个课程参与者,那么这段代码就会执行100次查询!这听起来可能不多,但在Salesforce中,每次查询都会消耗一定的资源。Salesforce对每次执行的代码都有严格的资源限制,称为“Apex调控器限制”。这些限制包括查询次数、查询返回的行数、执行时间等。 如果你在循环内进行查询,很容易就会超出这些限制。比如,Salesforce规定每次执行最多只能进行100次查询。如果你的循环次数超过100次,代码就会因为超出查询限制而失败。这不仅会导致功能无法正常工作,还可能影响整个系统的性能。 所以,正确的做法是尽量避免在循环内进行查询。你可以考虑在循环外部一次性查询所有需要的数据,然后在循环中处理这些数据。这样,你只需要执行一次查询,大大减少了资源消耗,也避免了超出调控器限制的风险。 总结一下,记住这个关键点:在Salesforce开发中,尽量避免在循环内进行查询。这不仅能让你的代码更高效,还能避免很多潜在的问题。希望这个讲解对你们有帮助,下次写代码时一定要注意哦!