salesforce isdeleted = false会减慢查询速度而不是改进查询速度

时间:2017-09-25 16:20:13

标签: salesforce apex

我读到当回收站中的记录太多而无法排除从查询中删除的记录时,您可以使用条件“where isDeleted = false”。但是在我的批处理中,监视时间,查询比没有显式条件的查询要慢得多。至少第一次运行,然后它看起来更快。 但是,开发人员控制台获得的结果总是令人兴奋。 请有人告诉我原因,请帮助我!

1 个答案:

答案 0 :(得分:0)

你在哪里读过它?看起来对我非常怀疑。 isDeleted = false应该对所有普通查询(最后没有ALL ROWS的查询)产生影响,因为这是他们开箱即用的。如果它有什么可能甚至会减慢执行速度,因为查询优化器需要考虑这个字段(它没有被索引,因此在99%的时间内具有相同值的索引是无用的。)

您可以在开发者控制台中尝试使用查询优化工具,并记住通常会在一夜之间重新计算索引统计信息,因此如果您加载了大量测试数据 - “今天”查询可能仍然会使用旧统计信息。

您可能过于复杂,依赖于一次性结果,因为例如服务器的负载在您开始实验时很低。或者,无论这是什么,都只是随着最新版本之一而改变的无证件行为。只需选择/创建一个有意义的索引,你就会变得更好。

更多阅读材料: