Oracle 读书笔记系列1

set autotrace traceonly explain 只显示执行计划
set timing on 显示执行时间
set autotrace on 显示执行计划

2. 在 where 语句中避免使用 <> 和 !=  因为这样查询索引用不起来,会直接进行全表查询

3. Where 语句中避免使用 IS NULL 和 IS NOT NULL 关键字
   因为 NULL 在数据库中代表的是“无”,就是什么都没有。 NULL 值不存储在索引中,因此索引列上 IS NULL 条件的查询不会使用索引,而是 Table Access Full 操作解析查询语句。  IS NOT NULL 同理。

4. EXISTS 关键字与 IN 关键字比较
  当子查询结果比较小时,用 IN 关键字比较合理, 当 外部表 比较小时比较合理 select * from 外部表  exists (内部表);


5. TRUNCATE 关键字 和 DeleteD 关键字
   truncate 关键字:通过释放存储表数据所用的数据块来删除数据,并且只在事务日志中记录块的释放。
结论:在整表数据删除的时候,使用TRUNCATER 效率要远远高于Delete.
   trancate 缺点 无法UNDO.无法数据恢复。

6.避免隐性转换,不然在查询语句中会使索引失效

7. 索引列上 >= 代替 >
   低率 :select * from emp where deptno>3
   高率: select * from emp where deptno>=4

8.避免在索引列上计算
   select * from emp where sal*12>1000 这样会全表查询。
   select * from emp where sal<1000/12 这样会查索引, 将计算项放在索引列的右边。

  
  



[本日志由 admin 于 2012-05-21 09:08 PM 编辑]
上一篇: oracle 建表空间
下一篇: Oracle 读书笔记系列2
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 支持Gravatar头像.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.