虽然两条语句执行的结果是相同的,但第二条语句好。
第一语句的“and b.学号 like '9901%'”与前面给出的条件重复,产生冗余。
差异在两条语句在执行前须经Oracle的编译。
第一语句的“and b.学号 like '9901%'”与前面给出的条件重复,产生冗余。
差异在两条语句在执行前须经Oracle的编译。
解决方案 »
- 未知的sql bug
- 建表添加 注释报错
- orale 数据表空间与数据库有区别吗?
- ORACLE 数据导出到excel问题
- java读取外部文件导入数据到数据库,遇到重复数据如何处理?
- 有个DMP文件,不知道用户,我怎样导到我的用户里,谢谢
- 谁有:oracle9i 中文视频39cd ,可以转买吗? 急需用
- 本人是Oracle新手,求一条SQL语句。(100分献上)
- to jlandzpa(欧高黎嘉陈
- 要字符型两个日期之间的时间差,用天、小时、分、秒组合在一起来显示该时间差
- 如何"turn on the Tracing"?
- 请问, Oracle 有没有图形界面,可以在里面进行对数据库的管理,如删除,建立表等。
两条语句性能应该是一样的!
你可以trace一下!另外:你这里根本没有用到索引带来的优越性!select * from table where a like 'xxx%'
与a有没有索引没有关系,like是全表搜索。
如果:
select * from table where a > xxx;
则:
效率因为索引的存在而得到提高!
其次用like '9901%'会按照索引检索,而不是全表扫描,只有象like '%9901%'这样的才会全表扫描。
然后你的这两个SQL都不是最优化的,比较好的是:
select a.学号,a.名,b.成绩 from 资料 a,成绩 b
where a.学号 like '9901%' and a.学号=b.学号
最后是你要学会自己看SQL的执行计划