ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Non-selective query against large object type (more than 200000 rows)

2021-11-23 14:34:35  阅读:204  来源: 互联网

标签:200000 Index Non rows 索引 查询 SOQL salesforce com


Salesforce为了保证执行效率,SOQL 查询必须有选择性的减少要扫描数据的数量,特别是在触发器内部发起的SOQL查询。

同时为了避免执行时间过长,系统可以终止非选择性的 SOQL 查询。 当触发器中的非选择的性查询的对象超过 20万条记录的,系统会抛出一条错误消息。 那为避免此错误,需要SOQL查询语句是有效率的。

为了写出有效率的SOQL,你要先理解几个概念:

Standard Index:标准索引,包括Id,Name,OwnerId,Master-detail fields,Lookup fields

Customed Index:自定义索引,Salesforce针对自定义字段同样可以设置成索引字段,编辑字段以后,勾选external Id外键以后,便成了被标记成索引得字段。外键仅可以Auto Number / Email / Number / Text类型中创建

Index Selectivity Exceptions:有些特殊情况下,就算是用了索引字段也是无效的,比如!=,NOT LIKE, EXCLUDE, 针对文本字段的比较操作,使用了"%"匹配符等

碰到这个错误,给SOQL查询添加LIMIT是没有用的,唯一的办法就是修改你的查询条件,特别是针对索引字段进行条件过滤,减少查询范围。

 

相关资源:

https://help.salesforce.com/s/articleView?id=000333150&type=1

http://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/salesforce_query_search_optimization_developer_cheatsheet.pdf

https://www.cnblogs.com/zero-zyq/p/14250870.html

标签:200000,Index,Non,rows,索引,查询,SOQL,salesforce,com
来源: https://www.cnblogs.com/salesforcechina/p/15592096.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有