---
order: 3
navTitle: 仪表板、报表性能优化
---
# 仪表板、报表性能优化

当页面出现加载过慢或者卡顿的情况时，可从以下几点着手排查：

- **[查看页面SQL请求耗时情况](#sql-perf)**
- **[查看页面资源加载耗时情况](#slow-page-load)**
- **[查看网络资源是否正常](#net)**
- **[查看WEB服务器性能](#server)**

## SQL查询耗时{#sql-perf}

### SQL查询数量过多{#too-many-sql}

调出开发者工具（可以使用F12快捷键调出），在调试页面查看页面的`SQL(querydata)`请求数量是否过多，如过多可考虑优化数据加工，将多个加工处理到同一个加工中，减少SQL请求数量。\
检查是否执行了不必要的SQL，其中数据界面没使用到的SQL需要定位分析原因。

![sql查询时间](./images/2022-03-24-18-42-01.png)

### SQL查询耗时过久{#slow-sql}

查看SQL请求中`Stalled`时间，如过长可检查下网络情况。\
查看SQL请求中`TTFB`时间，如过长可针对该请求对应的数据模型进行优化，具体可为该模型添加索引或者设置预览数据，可参考文档[数据仓库性能优化](./db-pref.md#agg)。

![stall时间](./images/2022-03-24-18-44-01.png)

查看SQL请求中的SQL语句，可复制到数据源中进行执行分析优化。

![查看SQL](./images/2022-04-13-17-33-01.png)

## 页面资源加载耗时{#slow-page-load}

若是页面资源加载过慢，可从以下几点排查：

- 图片资源加载过慢：请检查静态资源是否过大，图片一般不要超过300K，建议将图片资源压缩后再上传，[压缩网站地址](https://tinypng.com/)
- 如有二次开发脚本：请检查`js类资源`加载情况，若过慢可以排查脚本中是否import了非必要的类或方法
- 如Web层做了代理：建议在代理层做[静态资源的缓存](../devops/cluster/reverse-proxy.md#cache)，实现页面请求的动静分离，静态资源要走缓存后，加载后下次不会在从服务器再加载

## 网络资源{#net}

查看网络资源能否正常访问，可从以下几点排查：

- 查看代理是否正常
- 检查防火墙，可使用不经过防火墙的IP访问BI系统进行排查
- 在本地和服务器抓包，分析网络异常位置，再做进一步处理

## WEB服务器{#server}

查看WEB服务器性能，另外日志级别设置也会影响系统性能：

- 查看或监控`内存`、`CPU`使用情况，如`内存`、`CPU`使用率过高，可能是有任务阻塞或高并发访问，可分析在线用户数、线程堆栈，若是高并发，可扩展集群
- 检查日志文件`catalina.out`，如产生大量日志文件，可查看日志级别设置，日志级别设置为`TRACE`、`DEBUG`可能会严重影响系统性能，建议修改为`INFO`

::: tip 提示

- CPU、内存等变化会导致[产品许可](../sys-settings/basic/license.md)失效，请确认后处理
- 若日志级别为DEBUG，会产生大量日志，影响系统性能
  :::
