关于数据库移植,大家怎么看?

心如刀割 2011-06-02 11:22:20
最近做项目很郁闷,用的是oracle数据库,一个页面16个不同业务的查询,还有各种排序,基本上都是计算的,比如:一个月里每天的数据。一个月里所有的数据,还有很多查询条件,要把数据相加起来计算,求出符合条件的记录数,总之很复杂,我现在用了oracle的几个函数处理起来还算比较方便,在java代码里剩了很大的事。
http://topic.csdn.net/u/20110524/22/923863f2-56cb-4307-a2fd-c3bfb571f6df.html 具体可以看这个帖子,这个帖子里只是一个问题点,其他还有很多计算。大概半个月把基本功能做完了。java代码写的也很简洁,用了各种重构等思想。代码大概2000多行,其实主要业务都是在sql里处理的,一个sql大概50行,只是在java里处理查询一些判断和数据的组装。今天review代码,竟然不让用复杂的函数,我看了下,我就用了to_char,to_date,to_addmonths。这个项目是06年开始做的,客户那边说尽量不要用复杂函数,考虑到移植问题,现在都用了5年多,也没移植过一次。然后我回去就检查了以前的代码也用了很多to_char,to_date,to_number等,至于to_addmonths还没用过,我也是第一次用,这个函数真是方便。但是to_char,to_date,to_number这3个好像也是oracle特有的吧,要是移植起来那以前的不是全部要改??
我运行以前的功能,是慢的没说话,从来没见过这么慢的,查询出几条数据用了大概1分钟,也不知道他业务是很复杂,还是怎么回事。项目开始前客户就说过,这次在性能上不能像以前这么慢了,就算功能全部正确实现也不会使用。
我做之前看过以前的代码,乱七八糟,我也不想参考,大概就是取出所有的数据,然后把条件组装再计算,sql写的很简单,我就在想,为什么oralce提供了这么方便函数不去用,而在代码上下这么大工夫?难道就是考虑到移植问题?做的时候我也考虑过在程序里处理,不用sql函数,但是是在是太复杂了。16个查询就要处理各种计算,代码不会少于1万行,bug也会很多。今天开会,了解我这这个功能的同事也说了,这个如果全部查出来在程序里处理很困难。但是组长还是坚持以前的思想,就是在程序里处理,我也不想和他争。眼看项目马上要交了,我是没用心情和时间去改了,现在还在测试数据,处理其他小问题。
不知道大家对于DB移植,用到特有DB函数是这么处理的???要是移植,比如to_char,to_date,to_number等其他DB里有其他函替代的,to_addmonths好像没有,那应该这么办?
...全文
68 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
KnowKjava 2011-06-03
  • 打赏
  • 举报
回复
数据库。。
304的的哥 2011-06-03
  • 打赏
  • 举报
回复

--还是按照别人的要求做吧,谁叫他是老大呢!等哪天你做了老大,他们都按照你都要求行动了......
--有些事情真的很不好说,简单易懂的东西不适用,非得搞些复杂的......
--什么叫考虑移植性,简单高效为前提,这个信息化时代,时间和效率就是最宝贵的东西......

--好好的奋斗......

--oralce 里面没有to_addmonths只有addmonths;
oracle sql server
------------- -----------------------------
TO_CHAR CONVERT[转换为日期类型]
TO_DATE CAST+SUBSTRING[先截取字符串的日期,然后再转换为具体日期]
ADD_MONTHS DATEADD[具体参数得查查相关资料]

给自己定一个目标去奋斗
  • 打赏
  • 举报
回复
zenghui940 2011-06-02
  • 打赏
  • 举报
回复
我觉得都一样吧!数据库这玩意儿真不是一般的不好懂,我学习了一段时间我觉得数据库东西应该说好好的学习一下,语言这东西就是一字难啊!可是对于以后来说就是一个挣钱的好家伙了啊!

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧