提升Apex代码性能的实用策略
在开发过程中,我们常常需要关注代码的性能,尤其是在处理Salesforce平台上的Apex代码时,要考虑各种资源限制。本文将介绍一些提升Apex代码性能的方法,包括内存管理、查询优化、减少查询数量以及缓存的使用等。
1. 内存管理与堆大小控制
结合作用域管理可以有效确保应用程序的内存得到良好管理,大多数情况下无需担心堆大小限制。在堆大小管理方面,使用批量for循环有助于管理循环中通过的数据量。
2. 提高查询选择性
当在Salesforce中运行SOQL查询时,Force.com查询优化器会处理查询,并使用一组持续计算的统计信息来确定对底层数据库运行查询的最有效方式。为了获得最佳性能,我们应使查询尽可能具有选择性,以减少返回的记录数。
2.1 索引字段与查询选择性
查询的选择性首先取决于字段是否被索引。以下类型的字段通常会被索引:
- 标准主键(Id、Name、OwnerId)
- 外键字段(CreatedById、LastModifiedById、查找关系、主从关系)
- 审计字段(CreatedDate、SystemModstamp)
- 标记为唯一或外部ID的自定义字段
如果字段被索引,它将被考虑进行优化。优化器会根据索引确定返回的记录数,并通过以下计算来判断所选记录数是否低于阈值:
| 索引类型 | 前100万条目标记录的比例 | 剩余记录的比例 | 阈值 |
| ---- | ---- | ---- | ---- |
| 标准索引 | 30% | 15% | 100万条记录 |