本篇参考: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. 第8.2节 Python类的__init__方法深入剖析:构造方法案例详解

    前面一节介绍了构造方法定义的语法,并进行了语法解释说明,本节将通过案例来说明构造方法参数传递及返回值的情况. 一.    案例说明 本节定义一个汽车类,它有四个实例变量:wheelcount, pow ...

  2. PyQt(Python+Qt)学习随笔:PyQt帮助文档导入assistant后离线查阅

    在按照<第15.6节 PyQt5安装与配置>完成PyQt5及PyQt5-tools的安装后,发现Qt Designer中的帮助不能使用,报错: 按照<PyQt学习随笔:Qt Desi ...

  3. Linux(宝塔)部署.Net Core完整记录

    前言 最近在V站上看到一个外卖推广的小程序,意思大概是类似淘宝联盟那种,别人走自己的链接后,自己可以抽取大概4%-6%的提成.觉得还蛮有意思的,一开始开源的是静态页面写死的,所以我这边用.Net Co ...

  4. 【Docker】 .Net Core 3.1 webapi 集成EF Code First,使用MySql进行业务操作 、配置swagger (三)

    系列目录: [Docker] CentOS7 安装 Docker 及其使用方法 ( 一 ) [Docker] 使用Docker 在阿里云 Centos7 部署 MySQL 和 Redis (二) [D ...

  5. bugkuctf 这 是 一 个 神 奇 的 登 录 界 面

    首先结合源码可以看出这是一道sql注入题. 然后开始萌新的日常操作,尝试单引号闭合,可是并没有用,而且因为单引号注入的题太多,导致并没有立刻开始尝试双引号,之后想起双引号(对,双引号木得牌面)得到如下 ...

  6. Kubernetes的Local Persistent Volumes使用小记

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  7. CSS图标与文字对齐的两种方法

    在平时写页面的过程中,常遇到要把小图标与文字对齐的情况.比如: 总结了两种方法,代码量都比较少. 第一种 对img设置竖直方向对齐为middle, <div> <img src=&q ...

  8. Boost UDP Transaction Performance

    提高UDP交互性能 这是一篇个人认为非常非常厉害的文章,取自这里.讲述了如何提升UDP流的处理速率,但实际涉及的技术点不仅仅限于UDP.这篇文章中涉及的技术正好可以把前段时间了解的知识串联起来.作者: ...

  9. 题解-CF436E Cardboard Box

    题面 CF436E Cardboard Box \(n\) 个关卡,对每个关卡可以花 \(a_i\) 时间得到 \(1\) 颗星,或花 \(b_i\) 时间得到 \(2\) 颗星,或不玩.问获得 \( ...

  10. Day5 - 06 函数的参数-命名关键字参数

    引子:对于关键字参数,调用时可以传入任意个不受限制的关键字参数,至于到底传入了哪些,就需要在函数内部通过[函数里定义的关键字参数]检查,例子里就是通过otherinfo检查.        >& ...