数据加载分析

在BaskReport当中,为了方便我们查看报表在处理过程中各个环节的耗时情况,Windows下可在以预览页面中,通过快捷键Ctrl+Alt+Shift+Delete,四个功能键调出报表耗时信息窗口,如下图所示:

img

该窗口向我们展示了六项信息信息,我们从上至下逐个介绍。

编译报表耗时

该项目展示的是报表模版在修改完成后第一次运行时编译耗时情况。

用户在请求某个预览报表文件时,系统会首先在内存中检查当前模版对应的编译好的报表对象是否存在,如果不存在则到数据库中找到模版对应的XML数据,加载、编译并将编译好的报表对象缓存在内存当中;如果存在则检查当前报表对象对应的模版有没有修改,如果没有修改则直接采用该报表对象进行加载数据计算,此时这里的耗时就是0,否则则从数据库中重新加载报表模版XML并编译替换内存中的报表对象。

这里显示的就是报表模版编译成报表对象的耗时情况。

获取数据耗时

该项目展示的是报表模版中定义的各个数据集加载数据的耗时情况及具体的数据条数。

需要注意的是,如果定义了某个数据集,但该数据集在模版中又没有被用到,那么引擎会直接忽略该数据集,这里也就不会显示该数据集的信息。

报表计算耗时

这里展示的就是报表在加载数据后根据模版中定义的结构生成具体报表实例对象的耗时情况,如果报表结构较复杂,同时数据量也比较大(比如几十万,甚至上百万),那么这里显示的时长也就会比较大。

分页耗时

BaskReport因为计算的需要,它是在内存中对计算好的数据进行分页的,这里显示的就是分页耗时情况。

构建HTML耗时

本项目展示的是报表模版在计算好以后生成网页中需要展示的HTML时所花费的时间。

总耗时

也就是前面所有项目耗时总和。

需要重点关注的项目

对于我们使用者来说,最需要关注的就是获取数据耗时报表计算耗时

通过观察获取数据耗时项目下各个数据集的时长,如果发现某个数据集获取数据的时长过长,那就说明该数据集获取数据的途径可能需要优化,比如SQL语句需要优化、数据库服务器性能低下、连接数据库的网络不够通畅等。

另一个就是报表计算耗时,该项目展示的就是报表在拿到数据后生成具体报表所花费的时长,该时长大小就是报表性能的核心体现。

results matching ""

    No results matching ""