加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Java程序员在写SQL时候常犯的10个错误

发布时间:2017-06-14 11:49:07 所属栏目:教程 来源:oschina译者
导读:Java程序员编程时需要混合面向对象思维和一般命令式编程的方法,能否完美的将两者结合起来完全得依靠编程人员的水准。

  但是在SQL:2003中定义了窗口函数,这个在很多主流数据库都实现了它。窗口函数能够在结果集上聚合数据,但是却没有分组。事实上,每个窗口函数都有自己的、独立的PARTITION BY语句,这个工具对于显示报告太TM好了。

  使用窗口函数:

  • 使SQL更易读(但在子查询中没有GROUP BY语句专业)

  • 提升性能,像关系数据库管理系统能够更容易优化窗口函数

  解决方法:

  当你在子查询中使用GROUP BY语句时,请再三考虑是否可以使用窗口函数完成。

  9. 使用内存间接排序

  SQL的ORDER BY语句支持很多类型的表达式,包括CASE语句,对于间接排序十分有用。你可能重来不会在Java内存中排序数据,因为你会想:

  • SQL排序很慢

  • SQL排序办不到

  处理方法:

  如果你在内存中排序任何SQL数据,请再三考虑,是否不能在数据库中排序。这对于数据库分页数据十分有用。

  10. 一条一条的插入大量纪录

  JDBC ”懂“批处理(batch),你应该不会忘了它。不要使用INSERT语句来一条一条的出入成千上万的记录,(因为)每次都会创建一个新的PreparedStatement对象。如果你的所有记录都插入到同一个表时,那么就创建一个带有一条SQL语句以及附带很多值集合的插入批处理语句。你可能需要在达到一定量的插入记录后才提交来保证UNDO日志瘦小,这依赖于你的数据库和数据库设置。

  处理方法:

  总是使用批处理插入大量数据。

  译文链接:http://www.oschina.net/translate/10-common-mistakes-java-developers-make-when-writing-sql

  原文链接:http://blog.jooq.org/2013/07/30/10-common-mistakes-java-developers-make-when-writing-sql/

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读