Apex Governors and Limits

DEX502 - Module 14: Apex and Integration

📄 第 561 页 🎬 视频课程

课程章节介绍

今天我们来聊聊Salesforce中的Apex调控器(Governor Limits)。这些调控器听起来可能有点让人头疼,但其实它们是为了确保在Salesforce的多租户环境中,每个用户都能公平地使用资源。想象一下,如果没有这些调控器,你的代码可能会占用太多资源,导致其他用户的操作变得非常慢,甚至无法进行。 首先,我们要明白,调控器并不是坏事。它们的存在是为了帮助我们更高效地编写代码。比如,如果你需要处理100条记录,你可以一次性调用服务器处理这100条记录,而不是分成100次单独的调用。这样不仅节省了资源,还能让你的代码运行得更快。 Salesforce平台的设计让我们能够编写高效的代码,但前提是我们要在调控器的限制范围内工作。目前,没有任何方法可以扩大这些限制或关闭它们。每次调用可能会有多个事务,特别是在手动设置事务时,所以“每次调用”这个概念可能会有点模糊。 在用户页面上,你可以启用“Send Apex Warning Email”选项,这样当你的代码接近调控器限制时,你会收到警告邮件。这对于及时调整代码非常有帮助。 对于ISV合作伙伴来说,理解在托管应用程序中运行Apex的概念非常重要。与App Setup限制不同,Apex调控器限制不包括从AppExchange下载的项目。这意味着即使通常不能执行Apex的组织(如PE),也可以执行作为托管合作伙伴应用程序一部分的Apex。 每次Salesforce发布新版本时,调控器限制都会有所调整,通常是变得更宽松而不是更严格。这些限制并不与特定版本的API相关联,而是基于当前的一组调控器。所以,即使你为API版本20编写的代码,它也会以当前的限制级别运行,而不是版本20时的限制级别。 最后,我建议你查看文档中的调控器限制表,特别是SOQL限制、DML限制、堆大小和已执行行限制。这些是你在编写Apex代码时需要特别注意的主要内容。 希望这些信息能帮助你更好地理解Apex调控器,并在编写代码时更加得心应手。如果你有任何问题,随时问我!