【赛迪网-it技术报道】由于sql优化起来比较复杂,并且还会受环境限制,在开发过程中,写sql必须必须要遵循以下几点的原则:
1.oracle采用自下而上的顺序解析where子句,根据这个原理,表之间的连接必须写在其他where条件之前, 那些可以过滤掉最大数量记录的条件必须写在where子句的末尾.
例如:
(低效)
select … from emp e where sal > 50000 and job = ‘manager’ and 25 < (select count(*) from emp where mgr=e.empno);
(高效)
select … from emp e where 25 < (select count(*) from emp where mgr=e.empno) and sal > 50000 and job = ‘manager’;
2.select子句中避免使用’*’
当在select子句中列出所有的column时,使用动态sql列引用 ‘*’ 是一个方便的方法.可是,这是一个非常低效的方法. 实际上,oracle在解析的过程中, 会将’*’ 依次转换成所有的列名, 这个工作是通过查询数据字典完成的, 这意味着将耗费更多的时间.
3.使用表的别名(alias)
当在sql语句中连接多个表时, 请使用表的别名并把别名前缀于每个column上.这样一来,就可以减少解析的时间并减少那些由column歧义引起的语法错误.
注:column歧义指的是由于sql中不同的表具有相同的column名,当sql语句中出现这个column时,sql解析器无法判断这个column的归属。
闽公网安备 35060202000074号