新的环境,新的思想
新到一个开发团队中,发现在很多地方都与他们格格不入,如:编程风格,思想风格等等。而且最让我郁闷的是他们只是一味地让我的思想和风格和现有的模式保持一致,固然这样很好,不会让现有的项目看起来那么杂乱无章,但是我觉得他们有很多地方设计的都不是很合理,比如他们把所有的数据,业务操作都是采用静态方法封装的,当我问他们为什么这样做时,他们的回答竟是--可以不用实例化就直接调用,哦god,这样滥用静态方法会导致系统性能下降,因为系统在运行时不管有没有调用这样方法都会把它载入内存,而不是按需分配。还有他们在数据操作中一般是不用存储过程的,除了执行速度实在太慢了他们才会采用存储过称,每次涉及到数据分页时都是直接在方法中用SQL语句的,连基本的封装都不进行,每次新建一个设计数据分页操作的方法时都还要写或者拷贝一大串SQL语句,看起来是那么的刺眼。我每次用存储过程分页时他们都会勒令我用原有的SQL语句分页方式,当我问为什么时回答竟然是要考虑到不会用存储过程的成员,我就纳闷难道他们永远都停留在那个水平吗?再说了也不是很难,在存储过程中我注释可是写的清清楚楚的,如果实在是不会那只能说明他OUT了。
这些天我在改几个报表页面,我越发觉得存储过程是那么的重要。数据操作都是直接封装在存储过程中的,程序后台只需传入参数直接调用存储过程,每次修改报表时只需改动存储过程即可,而不用改动程序然后再预编译再重新发布,这样的话会节省很多额外的时间,也不用暂停正在运行的程序重新发布。其实我也不是写存储过程的高手,但是可以慢慢学逐步提高自己。之前做报表时我一直用的是视图将几个关联表连接起来,说实话视图拖起来快而且看起来也直观但是它的效率就不是那么高了,这种方法虽然很快捷但是只能用于小数据量的系统中,如果要想在大数据量的系统中将关联表的数据按照筛选条件快速导出报表的话建议用存储过程。存储过程写起来的确很不爽,但是用起来感觉就不一样了特别是在大数据量的系统中,写得好的话可以让查询效率提升很多。你可以在存储过程中优化SQL语句,可以建临时表将在过程中经常用到的数据插入到临时表中,与数据库中的实际存在表相比,临时表的读取速度要快得多,至于为什么去Google搜索下你就知道。如果你是数据优化高手的话你的薪酬绝对不菲,哪怕你写程序能力不是很强,一般情况下懂得数据优化的DBA待遇绝对要比程序员待遇好得多,建议多看点数据优化方面的教程,个人认为不要仅仅局限于code中,不要认为程序功能实现了你OK了,有的时候也去研究研究底层数据优化也能提高你的能力水平,也许你会惊喜的发现原来有还有一片天空等待你的到来。