salesforce isdeleted=false 减慢查询而不是改进它

salesforce isdeleted=false slows down the query rather than improving it

我看到当回收站中的记录过多无法排除查询中删除的记录时,可以使用条件"where isDeleted = false"。但在我的批次中,监控时间,查询比没有显式条件的查询慢得多。至少第一个运行,然后看起来更快。 然而,开发者控制台得到的结果总是令人兴奋。 谁能告诉我原因并帮助我,拜托!

您在哪里阅读的?在我看来非常可疑。 isDeleted = false 应该对所有正常查询(末尾没有 ALL ROWS 的查询)没有影响,因为这是它们开箱即用的功能。如果有的话,它甚至可能会减慢执行速度,因为查询优化器需要考虑这个字段(它没有被索引,索引 99% 的时间具有相同值的东西是没有用的)。

您可以在开发人员控制台中试用查询优化器,请记住,索引统计信息通常会在一夜之间重新计算,因此如果您加载了大量测试数据 - "today" 查询可能仍 运行 与旧版本相去甚远统计数据。

您可能过于复杂了,依赖于一次性结果,因为例如在您开始实验时服务器的负载很低。或者,这可能只是未记录的行为,随着最近的一个版本而改变。只是 select / 创建一个有意义的索引,你会过得更好。

更多阅读material: