码迷,mamicode.com
首页 > 其他好文 > 详细

采集系统优化:大家接手过的最烂的项目,最坑爹的项目是哪个?

时间:2014-10-24 18:36:50      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:winform   style   for   sp   文件   数据   代码   bs   line   

接手一个采集项目,性能极其低下,一跑公司数据库直接瘫痪。

 

采集数据访问密集,但对数据及时性无大要求。

 

下面是我接触过最痛苦的一个项目,也应该是此生见过最烂的项目。

 

代码层面

1:一次采集10W条,直接进内存

    优化:分割,以两千条分步处理。

2:数据进内存时,逐条插入,我不想多说了,(插入前还要验是否有重复数据,走全表扫描,无索引,此条如果规划合适,完全可以避免)

    优化:1):结合业务和数据,比如,此是采集当天,完全可以把当天的需验证的字段全进内存,在内存维护一张小表(或缓存服务器),进行重复验证,将计算挪到本地CPU,避免大量高频的全表扫描。

            2):改为表插入,逐条插入,小数据量还OK,对这种每天近百万的量,简直就是个坑。

3多线程实现方式错误,用10个线程,牛逼吧,可全都是winform的伪多线程,屁用没有。

     优化:1):改用线程池,咱用真线程

 

4设计一踏糊涂,从多个来源,提取数据,取数据汇总,这些数据必有共性,实现的逻辑连基本的封装都没有,每个是一套,完全独立

     优化:1):接口,封装提取逻辑API,实现公共接口。

 

5表设计一踏糊涂,同样的数据模型,完全可以放到一张表内,加一个字段区分,这设计的却是完全独立的表,一共20多张表,有没有?!!!!

     最坑爹的是,不同的表,同样含意的字段,要么名字不同,要么大小写不同,写SQL,第一个一个比对。

 

6传参数一踏糊涂,连业务对象都未封装,方法内部,完全一个个传参,一次传10个参的不在少数,优化的时候,我得一个一个对参数,参数命名也不规范,眼睛都对花了,天!!!!!!

      前面不是说了么,20多张表呢,优化完1张之后,满以为第二张很顺利,一年瞎了,字段得重新对!!!!!!!

      测试数据呢,会写SQL,满心欢喜的写完一个,以为通用了,呵呵,换到另一个表,先改表名,再照着改字段名,呵呵呵呵

 

7全程SQL,且未用第三方作SQL管理,难以维护,更难以优化,我得在这串SQL里找表,找字段!!!!!!!

      优化:1):改用ORM,至少有数据模型,如果用ORM的话会稍微好些,大数据插入依然走SQL,但至少传参,业务整合,维护着更清晰。

 

8游标,有统计汇总的功能,但偏偏是用游标实现,一开始统计时,游标会扫描数据,我取个例子,插入或更新10W条,那游标会扫10W次表,同时在跑的这种巨型坑可能有好几个哦,我都想骂娘了!!!!!!!!!!!!!

      优化:1):去游标,游标的细节,这里不想说,因为我也忘了,记住一条,游标走不了数据库的各种优化,能不用就不用,只用在简单函数和触发器里,一次最多扫10条数据,扫多了会哭的。

 

9定时调用,原本的实现方式,能吓尿你!

   编译20多个程序,然后用微软的定时器来定时执行某程序,爽吧,我快爽飞了。

   我都快哭了有没有!!!!

   想想这场景,修改项目启动参数,编译,上传,再修改编译,再上传,再修改编译,再上传,我当时这么干的时候,心里都麻了,差点过去打人!

   当然咱是守法好公民,打人是不会的,不过我真的差点背包走人,后来也真走了。

 

   咱一开始还真这么编译着干,编译了几个,也聪明了,微软的定时器不就自带传参么亲?直接编译一套,我也懒得给他套定时调用框架了,在MAIN方法里写一套参数判断,设定时器的时候,写个参数,这就OK了,只用编译上传一次,不过要在上面复制个20份(因为当时没优化完,有一些数据是要存在程序根目录的文件里)……

 

  优化:1最好的,网上这么多定时的框架,拿一个用用很难????

          2不知道这些框架,自已写一套简单的又何难?封装个task,定时反射加载,不就OK了?这种实现方式会死人的。

          3最次,我用的那套,用不同的启动参数不就

 

我折腾了一个多月,极为痛苦的,把这个项目优化好了,转眼发现,如果要我拿来重作,也就2星期的事

 

简洁,优美,高效。

 

折腾完了,公司说不要这么项目了。

 

浪费了一个多月,给一个51程序员擦屁股,擦了一个多月,公司说,这一个月你什么成果都没有么……

 

呵呵呵。

 

不过我总算是见识了五年经验一年水平的程序员是什么样了。

 

如今想来,依然心有余悸,所幸已经解脱了

 

珍爱生命,远离51

 

烂项目扔过来,看一眼,吓人,直接闪。

 

采集系统优化:大家接手过的最烂的项目,最坑爹的项目是哪个?

标签:winform   style   for   sp   文件   数据   代码   bs   line   

原文地址:http://www.cnblogs.com/zihunqingxin/p/4048790.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!