麦粉社区
>
帖子详情

报表加载数据集机制

数据分析 发表于 2024-7-19 11:06
发表于 2024-7-19 11:06:41

场景1 :假设只有一个SQL数据模型做成的数据集A。


用A做了10个相同sheet页报表,报表没有参数。


报表的页面设置为自动刷新,即数据自动显示。


10个sheet报表全部打开的时间为T1


 


场景2:数据集A拷贝为10个相同的数据集。


每个数据集单独做一个场景1同样的sheet报表,每个sheet报表完全一样,自动刷新。


10个sheet报表全部打开的时间为T2


 


问题:T1和T2是否相等,或者T2是T1的10倍?

发表于 2024-7-19 11:09:13
看你数据集的设定
  •   popliner
    数据集一样的,都是A
    2024-7-19 11:10| 回复
  •   君茗
     回复 popliner
    若全是 缓存,单个数据集、多个数据集在时间的感觉上是一致的,因为数据全是从缓存拿取
    若全是 不缓存,多个数据集时间成倍,相当于执行多次SQL (不过数据若是少的话 感觉上也是一致的)
    
    再说回你的场景,你的场景其实只有一个,就是一个sheet页,一个数据集。
    电子表格的sheet页好像是异步加载 所以T2跟T1想不想等 看你的数据集的设置,用缓存的速度相对来说要快一点。
    统计具体时间的话 可以进系统监控界面看SQL执行时间
    2024-7-19 11:21| 回复
  •   popliner
     回复 君茗
    数据集没有缓存。
    其实我想知道,10个sheet报表来自一个数据集,与10个sheet报表来自10个相同的数据集,是否一样
    2024-7-19 11:37| 回复
  •   君茗
     回复 popliner
    10个sheet报表打开的时候并不是加载10个sheet页,是只加载一个,所以一不一样看数据集的缓存
    正常使用缓存的要比不使用缓存的快一点,具体多少ms看监控界面
    如果用缓存,第一个打开的人加载会长一点,后面都一样了;如果不用缓存,数据集每次都是一样的
    所以用缓存的话,第一个人打开这俩报表时间都是一样的,后面的人打开也是一样的
    不用缓存的话,每个人打开都是一样的(每次打开只能打开一个sheet页,打不开10个sheet页)
    2024-7-19 11:58| 回复
  •   popliner
     回复 君茗
    缓存有个缺点,数据集的数据更新了,还要先清空缓存
    2024-7-19 14:23| 回复
  • 还有2条回复,点击查看

回复

使用道具 举报

发表于 2024-7-19 14:38:36
如果不走缓存应该是差不多的
如果走缓存那肯定是一个数据集会快些,因为取了之后会放到缓存池,这样就不需要再重新取了
回复

使用道具 举报

发表于 2024-7-19 14:53:18
一个数据集、数据集设置缓存的情况下,如果10个sheet页里面一模一样,这样执行SQL也一样的情况下,第一次打开就会跑SQL语句,后面都是9次取缓存。
10个数据集的情况,每个数据集都是独立的,所以不管走不走缓存,第一次打开10个sheet页都是要跑SQL语句,相当于跑10次,走缓存的情况下,第二次打开才会取缓存。
一般来说,读缓存会比到数据库内执行SQL快的
回复

使用道具 举报

发表于 2024-7-19 16:26:39
1个数据集的话只会有1个数据请求,最终可能只跑1个sql。10个数据集的话那是·10个数据请求,基本上是要跑10个sql的。必然是第一种情况的性能要优于第二种情况
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

11回帖数 0关注人数 605浏览人数
最后回复于:2024-7-19 16:26
快速回复 返回顶部 返回列表