本篇参考:https://developer.salesforce.com/docs/atlas.en-us.salesforce_large_data_volumes_bp.meta/salesforce_large_data_volumes_bp/ldv_deployments_infrastructure_skinny_tables.htm

数据操作在salesforce中非常的重要。我们在salesforce中不管是进行sales cloud 还是 service cloud或者是自定义开发。随着使用的年限增加,数据会慢慢增多,比如针对 sales cloud的 account / opportunity。 针对service cloud中的 account / case。当我们的数据达到百万或者千万级别。运行 report / listview 会非常的慢,运行report偶尔也会出现超时情况。又比如我们想在vf page中SOQL进行查询,并且查询的SOQL字段没有查询关联表,只是当前表的常用字段。出现了性能问题,想要优化。

这种情况下,我们可以根据情况考虑启用 skinny table.

一. skinny table简介

Skinny Table是Force.com平台中的自定义表,它包含指定标准表或自定义表的字段子集。如果需要,Force.com可以有多个Skinny Table.比如下图中针对 Account创建的 Skinny Table.

Skinny Table 可以针对 custom object / Account / Contact / Opportunity / Lead / Case表进行创建 Skinny Table。 他们可以针对 Report / ListView / SOQL进行性能优化。如果是这些表以外的,比如 External Object以及其他的标准 Object,则无法创建 Skinny Table。

Salesforce可以创建skinny table来包含经常使用的字段,并避免join操作。这可以提高某些只读操作的性能。当源表被修改时,skinny table与它们的源表保持同步,所以我们也不需要考虑和源表的同步问题。因为 Skinny Table 的数据是只读的,所以针对大数据量的Report性能会有显著的提高。
需要注意的是,管理员并不能自己创建 Skinny Table,如果想要启用,需要给salesforce 提case。启用以后也不能创建/访问或者编辑 Skinny Table,如果提case以后,Skinny Table字段需要修改类型或者添加新字段,也需要给Salesforce提case。

Skinny tables只支持以下的字段类型:

  • Checkbox
  • Date
  • Date and time
  • Email
  • Number
  • Percent
  • Phone
  • Picklist (multi-select)
  • Text
  • Text area
  • Text area (long)
  • URL

二. Skinny Table使用注意事项

Skinny Table虽好,但是需要考虑以下的点:

1. Skinny Table不包含soft-deleted的数据,比如不包含在回收站的数据,即使SOQL设置 isDeleted=true在 Skinny Table无法查询出来。
2. 一次性考虑好 Skinny Table需要用到的字段,如果字段需要新增,则只能重新给salesforce 提case让他们重新创建;
3. Skinny Table只能最多包含100个字段。
4. Skinny Table 不能跨表创建字段。比如 针对 Opportunity创建了 Skinny Table,无法创建关联到 Account的字段,即只能当前表创建字段.

总结:针对大数据满足以下条件出现性能问题情况,可以考虑使用 Skinny Table. 使用前需要先确认是否满足这些条件,满足可以考虑使用,如果不满足,则使用其他的方案进行性能优化。篇中有错误地方欢迎指出,有不懂欢迎留言。

Salesforce 大数据量处理篇(一)Skinny Table的更多相关文章

  1. Salesforce 大数据量处理篇(二)Index

    本篇参考: https://developer.salesforce.com/docs/atlas.en-us.202.0.salesforce_large_data_volumes_bp.meta/ ...

  2. MySQL大数据量快速分页实现(转载)

    在mysql中如果是小数据量分页我们直接使用limit x,y即可,但是如果千万数据使用这样你无法正常使用分页功能了,那么大数据量要如何构造sql查询分页呢?     般刚开始学SQL语句的时候,会这 ...

  3. J2EE综合:如何处理大数据量的查询

    在实际的任何一个系统中,查询都是必不可少的一个功能,而查询设计的好坏又影响到系统的响应时间和性能这两个要害指标,尤其是当数据量变得越来越大时,于是如何处理大数据量的查询成了每个系统架构设计时都必须面对 ...

  4. MySQL大数据量分页查询

    mysql大数据量使用limit分页,随着页码的增大,查询效率越低下. 测试实验 1.   直接用limit start, count分页语句, 也是我程序中用的方法: select * from p ...

  5. 【1】MySQL大数据量分页查询方法及其优化

    ---方法1: 直接使用数据库提供的SQL语句---语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N---适应场景: 适用于数据量较少的情况(元组百/千 ...

  6. MySQL大数据量分页查询方法及其优化

    MySQL大数据量分页查询方法及其优化   ---方法1: 直接使用数据库提供的SQL语句---语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N---适 ...

  7. MySQL分页查询大数据量优化方法

    方法1: 直接使用数据库提供的SQL语句 语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N适应场景: 适用于数据量较少的情况(元组百/千级)原因/缺点: ...

  8. POI读写大数据量EXCEL

    另一篇文章http://www.cnblogs.com/tootwo2/p/8120053.html里面有xml的一些解释. 大数据量的excel一般都是.xlsx格式的,网上使用POI读写的例子比较 ...

  9. Mysql 大数据量导入程序

    Mysql 大数据量导入程序<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" ...

随机推荐

  1. 第11.9节 Python正则表达式的贪婪模式和非贪婪模式

    在使用正则表达式时,匹配算法存在贪婪模式和非贪婪模式两种模式,在<第11.8节 Pytho正则表达式的重复匹配模式及元字符"?". "*". " ...

  2. 开源脉冲神经网络深度学习框架——惊蛰(SpikingJelly)

    开源脉冲神经网络深度学习框架--惊蛰(SpikingJelly) 背景 近年来神经形态计算芯片发展迅速,大量高校企业团队跟进,这样的芯片运行SNN的能效比与速度都超越了传统的通用计算设备.相应的,神经 ...

  3. 极光实验室 第一次考核wp

    第一道题: 上来就让我买flag,用御剑扫目录,发现了这道题有源码index.php.bak!直接下载. <meta charset='UTF-8'> <title>极光实验室 ...

  4. 返回sourceString 中出现的第一个 searchString 的索引

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. Panda 交易所热点关注:股权交易中心+区块链试点将开始

    近期,Panda 交易所注意到,中国证监会已同意北京.上海等5家区域性股权市场参与区块链建设试点工作.Panda 交易所获悉的具体情况是,北京股权交易中心曾联合其他单位共同推出区域性股权市场中介机构征 ...

  6. 【CSP-S 2019】树的重心(重心的性质)

    Description 给定一颗 \(n\) 个顶点的树 \(\text T\),共 \(n-1\) 次断边操作,每次将树分为两部分 \(\text T_1, \text T_2\),求: \[\su ...

  7. 计算机语言与JAVA的发展

    计算机语言与JAVA的发展 第一代语言 2进制 第二代语言 汇编语言 解决人类无法读懂的问题 指令替代二进制 目前应用 逆向工程 机器人 病毒 第三代语言 摩尔定律 性能提升愈来愈慢 高级语言 面向过 ...

  8. Vue组件化开发(原有项目的改造)

    将组件定义成一个js和css,然后供其他页面进行调用 demo.html <!DOCTYPE html> <html> <head> <meta charse ...

  9. Jmeter(6)命令行执行

    Jmeter执行方式有2种:GUI和非GUI模式 GUI:在Windows电脑上运行,图形化界面,可直接查看测试结果,但是消耗压力机资源较高 非GUI:通过命令行执行,无图形化界面,不方便查看测试结果 ...

  10. 八、TestNG忽略测试

    一个TestNG  测试类中如果有的方法不想测试可以使用 enabled 属性 enabled = false  该方法不参与测试 enabled = true  该方法参与测试 @Test 不写en ...