为啥用2的方式,多年实践以来,发现系统的瓶颈基本都在数据库,复杂sql就是根源,难优化,也难拆分,业务逻辑分散到sql中,不容易利用IDE等工具定位问题(比如列的别名,case when ,nvl,decode等等,各种能做很多事情的函数),说实话,复杂sql才是真的垃圾代码...让人看不懂,也不利于后期服务的拆分
[/quote]
我们项目组就是使用2的开发方式,极大的解放了生产力,当然我们的数据库本就是按模块拆分的,业务不紧密的表想关联也关联不起来
为啥用2的方式,多年实践以来,发现系统的瓶颈基本都在数据库,复杂sql就是根源,难优化,也难拆分,业务逻辑分散到sql中,不容易利用IDE等工具定位问题(比如列的别名,case when ,nvl,decode等等,各种能做很多事情的函数),说实话,复杂sql才是真的垃圾代码...让人看不懂,也不利于后期服务的拆分
[/quote]
具体是用java还是sql还是要看情况分析的,我这边很多东西就和你的完全相反。比如,我这边java服务器配置一般中高,oracle服务器却几乎是顶配的;核心业务无法做到分库,在其他库的数据也大多会同步到主库,最少也会有个dblink;了解sql的人比了解java的人多;我自己写的复杂sql没人能看懂,最后只能自己维护这种郁闷事也发生过,不过每次维护,用时不会超过5分钟;至于效率方面,用java要跑1小时,用sql一分钟这种事也发生过。不过,楼主也没说这些具体情况,没法讨论了。
按照我对楼主语言的理解,他要做的应该就是4个表通过7、8个条件连接起来。这完全不叫复杂啊,就是最基本的多表查询啊。如果说单表查询相当于 int i = 0; 那多表查询也不过就是 int i, j = 0; 这种语句还能有多复杂?它还能上天了?
也可能楼主确实遇到了麻烦的问题,但是,既然他什么都没说,咱也不好多想。
为啥用2的方式,多年实践以来,发现系统的瓶颈基本都在数据库,复杂sql就是根源,难优化,也难拆分,业务逻辑分散到sql中,不容易利用IDE等工具定位问题(比如列的别名,case when ,nvl,decode等等,各种能做很多事情的函数),说实话,复杂sql才是真的垃圾代码...让人看不懂,也不利于后期服务的拆分