对集合多列进行求和方法的选择

今天接到一个任务,改进一个报表,在分页查新的报表最后一行插入一条求和数据。

要求:1.对复核条件的元组进行求和 2.求和列数为最后四列

方案1:重新组织查询条件,查询所有数据,然后对获得的数据集合进行循环遍历将后四列进行叠加。

方案2:重新组织查询条件,查询所有数据,让后利用Linq的Sum方法对每一列进行Sum,获得想要的数据。

方案3:利用fluentdata 重新封装的方法直接拼接字符串与数据库进行交互获得想要的结果.

测试:查询10000条数据

结果:方案3性能 > 方案1性能 >  方案2性能

分析: 由于方案三直接拼接出了数据库语言SQL语句直接操作数据库,相对数据的操作速度还是比较快的,而前两个方案的实质做法都是在对程序中对数据进行循环遍历,这个过程是相当消耗时间的,而他们两个的区别就在于linq在执行的时候是每次执行一个sum函数的时候都对这个集合进行一次遍历所以它的性能是最差的。

由于代码在开发机上,开发机无法直接向外输出文件这里就不做代码展示了,如果对您有帮助记得来个互动,让我知道你的存在。。。。。。。

时间: 2024-10-07 20:11:44

对集合多列进行求和方法的选择的相关文章

使用Linq求和方法Sum计算集合中多个元素和时应该注意的性能问题

提出问题 本文使用下面的实例来说明问题,以下是实例的完整代码. //************************************************************ // // Sum应用示例代码 // // Author:三五月儿 // // Date:2014/09/10 // // http://blog.csdn.net/yl2isoft // //**********************************************************

Map集合(双列集合)

Map集合(双列集合)Map集合是键值对集合. 它的元素是由两个值组成的,元素的格式是:key=value. Map集合形式:{key1=value1 , key2=value2 , key3=value3 , .. } * Map集合系列: Map<K,V>(接口) / HashMap<K,V>(实现类) / LinkedHashMap<K,V>注意:Map集合只支持引用数据类型的元素存储. Map集合特点: 键是无序不重复的. 重复的键,后面加入的会直接覆盖前面.

Java学习:集合双列Map

数据结构 数据结构: 数据结构_栈:先进后出 入口和出口在同一侧 数据结构_队列:先进先出 入口和出口在集合的两侧 数据结构_数组: 查询快:数组的地址是连续的,我们通过数组的首地址可以找到数组,通过数组的索引可以快速的查找某一个元素. 增删慢:数组的长度是固定的,我们想要增加/删除一个元素,必须创建一个新数组,把原数组的数据复制过来 例: int[] arr = new int[]{1,2,3,4}; 要把数组索引是3的元素删除 必须创建一个新的数组,长度是原数组的长度-1 把原数组的其它元素

HashTable集合遍历的三种方法

hashtable集合遍历可以根据key,value以及key+value 示例代码: Hashtable table = new Hashtable(); Student stu = new Student(); stu.Name = "李四"; stu.Age = 18; Student stu1 = new Student(); stu1.Name = "张三"; stu1.Age = 18; Student stu2 = new Student(); stu

Oracle中对列加密的方法

Oracle中对列加密的方法 2011-12-22 17:21:13 分类: Linux Oracle支持多种列加密方式: 1,透明数据加密(TDE):create table encrypt_col(id int,txt varchar2(100) encrypt using '算法名称' identified by '密钥' no salt);优点:对应用完全透明缺点:需要数据库管理员管理wallet,增加了管理复杂性,也无法避免数据库管理员查看原文. 2,使用DBMS_CRYPTO包优点:

JSTL FOREACH循环每行两和三列的显示方法

1 //两列的 2 <c:forEach var="bean" items="${result}" varStatus="status"> 3 <c:if test="${status.count%2==1}"> 4 <tr> 5 </c:if> 6 <td><b>$...{bean.id}</b>:$...{bean.name}</td

CSS实现横列布局的方法总结

一.使用float实现横列布局的方法 如下面所示:DIV1和DIV2都可以选择向左或者向右浮动50%来实现展示在同一行 div1 div2 实现下面图片中布局的css样式如下: 分析: 1.第一行第一个图片和最后一个图片的左右边距是10px,中间图片的左右边距是5px.布局如下: <section class="active_div1"> <div> <img id="active_div11" src="">

SQL 自增列清零方法

SQL Identity自增列清零方法1.使用DBCC控制台命令: dbcc checkident(表名,RESEED,0) 2.truncate table 也可将当前标识值清零 但当有外键等约束时,无法truncate表 可以先禁用外键约束来truncate表: --禁用外键约束 exec sp_msforeachtable 'alter table ? nocheck constraint all' --清空数据 truncate table 表名 --启用外键约束 exec sp_msf

你以为Excel求和只有sum求和?多种高级求和方法都在这里了!

求和,是Excel最基本的技能,但同时也是最高级的技能.这里有的人会觉得求和不就是sum函数,或者Alt+吗?实际的求和功能远比这些要多得多,例如条件求和,多条件求和...今天就带大家看一下Excel的多种求和方法,一起来看下吧! 合并单元格汇总求和对于合并单元格后的汇总求和我们如何操作呢?我们先选中所有合并的单元格,输入公式[=SUM(C2:C10)-SUM(D3:D10)],然后点击[Ctrl+回车]就能完成求和. 按条件求和有的时候商品品种太多,我们只需要求出特定商品的总销量,这个时候我们