---
url: /v6.2/solutions-use-performance.md
---
# HENGSHI SENSE 产品使用性能问题指引

## 数据集操作指南

1. 避免在“多表联合”，“数据聚合”，“数据合并” 三种类型的数据集上，建立不用于分析的聚合类型的新增字段。因为这三种数据集在查询时实时做联合、聚合、合并计算，在最终数据集上新建聚合字段(如 sum, avg 等)，聚合字段个数会以倍数关系增加数据集的成本。(比如 A join B -> C, 在 C 上新增三个聚合字段，此时 C 在查询时复杂度为 3(三个聚合字段引入的倍数)+1(本来 A 与 B 的 join) = 4 倍的 join 代价 ))。可以考虑在 Chart 的计算指标里加上聚合类型的函数
2. 避免“多表联合”，“数据聚合”，“数据合并” 三种类型的数据集嵌套多层。因为这三种数据集在查询时是实时做联合、聚合、合并计算，构造的层数越多，生成的代价越大，分析越慢。如果生成过程无法简化，可以考虑：1.) 对最终数据集打开“开启加速引擎”，系统会将数据集生成的结果固化下来，下次查询时不再实时生成数据集。（注意：开启加速引擎后数据集基本权限为数据集所有者权限，后续各种权限设置都是基于这个基础之上） 2.) 将复杂的生成过程在源数据库中实现，生成一张客户业务数据库内的表，在这个结果表上建立数据集。

## 仪表盘操作指南

1. 单个仪表盘建议包含 Chart 的数量在20以内，太多的 Chart 会加重后端数据源查询的压力和前端的页面渲染压力
2. 在编辑 Chart 的过程中，在维度、对比维度（表格）等字段的选择上，需要选取 distinct value 较少的字段；否则，会导致可视化效果较差，同时加重性能问题
   1. 所谓 distinct value，是指这个字段在数据源的取值去重个数
3. 点击仪表盘和图表页面的刷新按钮，系统将绕过可能有的缓存，重新下推查询到数据源（看是否导入引擎）获取结果数据，然后在页面渲染展示

## 系统设置性能相关

1. 系统设置里有“图表数据缓存周期”，当在这个周期时，重复的查询，除了第一次，后续都会走缓存，不会下推到数据源，不消耗系统资源。用户可以考虑根据自己的业务场景，对此做相应设置，比如如果分析都是 T+1模式的，可以将这个数值设置为86400，这样一天的重复查询都将不消耗系统资源。

备注：

1. 性能随并发情况线性上升，这个并发也就是同时查询的语句数，和并发人数，同时打开的 Dashboard 页面，Dashboard 页面的 Chart 数都密切相关。

## 浏览器加载页面性能

主要在反向代理端开启 https 2.0 并开启 gzip 压缩，参考[反向代理注意事项](post-deployment.md#反向代理注意事项)
