今天接到一个任务,改进一个报表,在分页查新的报表最后一行插入一条求和数据。
要求:1.对复核条件的元组进行求和 2.求和列数为最后四列
方案1:重新组织查询条件,查询所有数据,然后对获得的数据集合进行循环遍历将后四列进行叠加。
方案2:重新组织查询条件,查询所有数据,让后利用Linq的Sum方法对每一列进行Sum,获得想要的数据。
方案3:利用fluentdata 重新封装的方法直接拼接字符串与数据库进行交互获得想要的结果.
测试:查询10000条数据
结果:方案3性能 > 方案1性能 > 方案2性能
分析: 由于方案三直接拼接出了数据库语言SQL语句直接操作数据库,相对数据的操作速度还是比较快的,而前两个方案的实质做法都是在对程序中对数据进行循环遍历,这个过程是相当消耗时间的,而他们两个的区别就在于linq在执行的时候是每次执行一个sum函数的时候都对这个集合进行一次遍历所以它的性能是最差的。
由于代码在开发机上,开发机无法直接向外输出文件这里就不做代码展示了,如果对您有帮助记得来个互动,让我知道你的存在。。。。。。。