最近有用户反映报表发生内存溢出问题,我问数据量有多少?回答是百万级。这个数量级的数据全部取出来来要占用多少内存呢?作为报表的设计者,一定要做到心中有数。作为B/S架构的报表软件,最终要部署到服务器上,你用的服务器有多大的内存,你设计的报表就取多少数据。
针对大数据量展现报表的需求,皕杰报表软件提供了行式报表(简单查询报表)类型,sql执行时每次只取一页的数据进行展现,点击下一页再重新取一页数据,这样就解决了内存溢出的问题。当然这种报表不能进行分组、求和等运算,但这个完全可以在数据处理时解决,报表只起到取数并展现的作用。
而普通展现报表一次取出全部数据,可以做分组、求和等运算,在设计时尽量通过参数控制取出数据的数量,在硬件能够承受的条件下运行,避免发生内存溢出。
网友评论