SQL1:
SELECT HOS.HOSPITAL_NAME, DEP.DEPARTMENT_NAME
FROM RELEASEHOSPITALINFO HOS, RELEASEDEPARTMENTINFO DEP
WHERE HOS.HOSPITAL_ID = DEP.HOSPITAL_ID
AND HOS.HOSPITAL_ID = '00000000008'
AND HOS.HOSPITAL_DELETE_FLAG = '0'
AND DEP.DEPARTMENT_DELETE_FLAG = '0'SQL2:
SELECT HOS.HOSPITAL_NAME, DEP.DEPARTMENT_NAME
FROM RELEASEHOSPITALINFO HOS inner join RELEASEDEPARTMENTINFO DEP on HOS.HOSPITAL_ID = DEP.HOSPITAL_ID
WHERE HOS.HOSPITAL_ID = '00000000008'
AND HOS.HOSPITAL_DELETE_FLAG = '0'
AND DEP.DEPARTMENT_DELETE_FLAG = '0'今天SE给我review代码说是要改成第二种写法这样效率高,占用内存少,因为第一个先求了笛卡尔然后再过滤的,高手请教一下这两个sql性能上差别很大么,我平时就喜欢用第一种写法,性能差不多的话我就不想改了!
SELECT HOS.HOSPITAL_NAME, DEP.DEPARTMENT_NAME
FROM RELEASEHOSPITALINFO HOS, RELEASEDEPARTMENTINFO DEP
WHERE HOS.HOSPITAL_ID = DEP.HOSPITAL_ID
AND HOS.HOSPITAL_ID = '00000000008'
AND HOS.HOSPITAL_DELETE_FLAG = '0'
AND DEP.DEPARTMENT_DELETE_FLAG = '0'SQL2:
SELECT HOS.HOSPITAL_NAME, DEP.DEPARTMENT_NAME
FROM RELEASEHOSPITALINFO HOS inner join RELEASEDEPARTMENTINFO DEP on HOS.HOSPITAL_ID = DEP.HOSPITAL_ID
WHERE HOS.HOSPITAL_ID = '00000000008'
AND HOS.HOSPITAL_DELETE_FLAG = '0'
AND DEP.DEPARTMENT_DELETE_FLAG = '0'今天SE给我review代码说是要改成第二种写法这样效率高,占用内存少,因为第一个先求了笛卡尔然后再过滤的,高手请教一下这两个sql性能上差别很大么,我平时就喜欢用第一种写法,性能差不多的话我就不想改了!
解决方案 »
- 显示页面用星号
- 公司让我做了一个客服系统(asp.net开发),现在又给此系统加了一个LQuery 语音系统(java ),要求将两个系统结合起来.
- http status 404
- spring+webworks+freemark的组合有前途吗?
- 批处理中del *.* 如何才能不提示<y/n>??...
- 请问在目录服务器或者LDAP方面有什么研究工作?
- Hibernate的问题,很急了,几天了,都没办法解决,求救了!!!
- [struts标签]如何在JS代码中写调用标签对象的语句?
- 两种调用EJB的方式, 哪种好一点, 刚入门有些概念还比较模糊的说//////
- 我在运行j2ee程序的时候出现了NoClassDefFoundError的错误,请问该怎么解决这个问题?
- java下载腾讯论坛网页问题
- 开发端口用什么啊?
今天SE给我review代码说是要改成第二种写法这样效率高,占用内存少,因为第一个先求了笛卡尔然后再过滤的,我感觉应该是没有 WHERE 子句的交叉联接才会产生联接所涉及的表的笛卡尔积。
效率不敢乱说,个人认为inner join的这种写法更标准一些,至于效率应该正确的选定连接的主表与从表后inner join会高一些吧。