【O】性能优化一些经验总结分享
金蝶云社区-springwind_liu
springwind_liu
2人赞赏了该文章 5,916次浏览 未经作者许可,禁止转载编辑于2014年04月30日 14:46:35

最近在各位大师的指导下,进行了一些性能优化的工作,总结一下经验教训,希望未来项目可以以此为鉴!

开贴附上张大师总结的十大原因:
【O】性能产生的十大原因

1、动态表单、或者单据通过代码构建动态对象并赋值的正确方法
性能问题暴露:[已答复][补丁解决]性能问题反馈:入库核算列表查询
解决方案:【O】循环给单据体赋值的正确方法

2、在存在复杂计算的地方,如费用分配、成本计算等,需要读取数据以加载到内存中,查询数据并转换为实体对象的正确方式
【O】数据库数据加载到强类型对象的正确实现方式

3、查询的数据转换时存在关联关系,需要转换为集合对象时,使用分组和字典来减少命中
【O】使用IGrouping优化循环嵌套内存算法

4、LINQ语句的使用不正确

5、存在大数据量的更新、删除、插入时,使用KSQL在ORACLE下面可以通过方言的merge into来提高性能
【O】Oracle Merge into详细介绍

6、内存中的数据,循环SQL语句插入到数据库,可以使用BULK INSERT接口完成
【O】Cloud中BulkInsert插入数据的实现方式

7、避免循环中执行SQL语句,SQL语句的正确写法,索引的创建等
8、统计信息,ORACLE下面频繁插入、删除的表,会造成执行计划不正确,更新统计信息能更新正确的执行计划
http://msdn.microsoft.com/zh-cn/library/ms190397.aspx