Principle: Reducing the Data Set

DEX450 - Module 13: Strategies for Designing Efficient Apex Solutions

📄 第 337 页 🎬 视频课程

课程章节介绍

同学们,今天我们来聊聊如何在Salesforce中优化我们的触发器(Trigger),特别是如何通过减少数据集来提高效率。想象一下,你有一个大箱子,里面装满了各种颜色的球,但你只需要红色的球。如果你把整个箱子都倒出来找红色的球,那会非常耗时。所以,我们得想办法只拿出红色的球,这样效率就高多了。 在我们的Salesforce触发器里,情况也类似。假设我们有一个触发器,它会在每次有200条记录被更新时触发。但是,我们真正关心的可能只有其中的20条记录。如果我们不加以筛选,直接处理这200条记录,那就会浪费很多资源。 那么,我们怎么做到只处理我们关心的那20条记录呢?这里就需要用到过滤器了。我们可以设置一个条件,比如只处理那些状态没有改变的记录。在Salesforce中,我们可以使用`Trigger.oldMap`来获取更新前的记录状态,然后与更新后的状态进行比较。如果状态没有改变,我们就可以跳过这些记录,不对它们进行SOQL查询,这样就大大减少了不必要的数据处理。 总结一下,我们的目标是通过添加过滤器,只带回我们需要的数据,就像只从箱子里拿出红色的球一样。这样做不仅能提高触发器的执行效率,还能减少系统的负担。希望这个比喻能帮助大家更好地理解这个概念。如果有任何疑问,随时提问哦!