下面是有人用皕杰报表工具设计的报表,共有80多列,加载和打开特别慢。为什么呢?
这是一个典型的报表优化问题,从设计者给出的部分设计内容看,用了很多getone函数到数据集中取值,每次getone函数取值都要进行条件判断,因而效率比select函数就要低很多了。用getone函数应该是有多个数据集,设计者反应sql执行的并不慢,可见反应慢的原因就出在报表的设计上用了太多的getone函数。优化的方法就是把多数据集尽量合并成一个数据集,然后用select函数取记录集,后面全部采用取值来跟随扩展。
那么一张报表到底使用单数据集好还是多数据集好呢?这主要看你把数据集合并后是否会多取很多数据,如果数据不多,就用一个数据集,如果会多出很多数据就用多数据集。用单数据集后就可以用select函数一次取出一个记录集,后面就直接取值,这样报表的效率就会提高很多。
另外,能否合并为一个数据集还要看看是不是同一个数据源,如果不是同一个数据源只能用多数据集,因为在皕杰报表工具中每一个数据集是对应一个数据源的。返回搜狐,查看更多