本篇参考: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.20节 Python中限制动态定义实例属性的白名单:__slots__

    一. 引言 按照<第7.10节 Python类中的实例变量定义与使用>.<第7.14节Python类中的实例方法解析>中的介绍,当定义了一个类,并且创建了该类的实例后,可以给该 ...

  2. PyQt(Python+Qt)学习随笔:QTreeView树形视图的wordWrap属性

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTreeView树形视图的wordWrap属性用于控制视图展示数据项文本的单词换行原则,如果该值为 ...

  3. PyQt(Python+Qt)学习随笔:QAbstractScrollArea的用途

    老猿Python博文目录 老猿Python博客地址 QAbstractScrollArea部件提供了一个带有按需滚动条的滚动区域. QAbstractScrollArea是滚动区域的低级抽象.该区域提 ...

  4. RedHat操作指令第2篇

    六.RPM包管理命令 主要功能 查询RPM软件.包文件的相关信息 安装.升级.卸载RPM软件包 维护RPM数据库信息 查询RPM软件信息 查询已安装的RPM软件信息 格式:rpm -q[子选项] [软 ...

  5. Linux相关介绍和安装

    目录 前言 第一章 linux介绍 1.1 linux简介 第二章 Linux起源 2.1 Unix的历史 2.2 Unix操作系统的革命 2.3 Linux系统的诞生 2.4 Linux系统的发展史 ...

  6. Reflect个人记录

    Reflect是一个内置方法,并不能通过构造函数的来进行构建 Reflect.construct: 与new操作父有一些类似,相当于new target(...) 例: 我们先自己定义一个类 clas ...

  7. 一文搞懂I/O多路复用机及其技术

    前言 ​ 高性能是每个程序员的追求,无论写一行代码还是做一个系统,都希望能够达到高性能的效果.高性能架构设计主要集中在两方面: 尽量提升单服务器的性能,将单服务器的性能发挥到极致 如果单服务器无法支撑 ...

  8. 手把手教你配置KVM服务器

    1 Ubuntu系统安装 1.1 制作启动盘 准备一个U盘,将其清空后,去官网下载Ubuntu18.04系统的iso镜像文件,并将其拷进U盘.然后下载一个UltralOS软碟通工具,完成安装后打开软碟 ...

  9. js上 三、数据类型

    3.1.什么是数据类型 a. 什么是数据类型? 想从生活中出发: 考验智商的时刻到了: 1(只)+1(只)=1(双) 3(天)+4(天)=1(周) 5(月)+7(月)=1(年) 4(时)+9(时)=1 ...

  10. angular8 在componet里面跳转新的地址页面

    this.router.navigate(['/teacher/course/detail/' + id]);