使用索引来更快地遍历表。默认情况下建立的索引是非聚集索引,但有时它并不是最佳的。在非聚集索引下,数据
在物理上随机存放在数据页上。合理的索引设计要建立在对各种查询的分析和预测上。一般来说:
有大量重复值且经常有范围查询(between,>,<,>=,< =)和order by、group by发生的列,可考虑建立聚集索引。
经常同时存取多列,且每列都含有重复值可考虑建立组合索引。
组合索引要尽量使关键查询形成索引覆盖,其前导列一定是使用最频繁的列。
ORDER BY和GROPU BY:使用ORDER BY和GROUP BY短语,任何一种索引都有助于SELECT的性能提高。注意如果索引列中
有NULL值,Optimizer将无法优化。
IN、OR子句常会使用工作表,使索引失效。如果不产生大量重复值,可以考虑把子句拆开,拆开的子句中应该包含索
引。
用聚集索引比用非聚集索引的主键速度快。
用聚集索引比用一般的主键做order by时速度快,特别是在小数据量情况下。 1、操作符优化(同上)  
 
  2、对条件字段的一些优化   
任何对列的操作都将导致表扫描,它包括数据库函数、计算表达式等,查询时要尽可能将操作移至等号右边。
  采用函数处理的字段不能利用索引,如:      substr(hbs_bh,1,4)=’5400’,优化处理:hbs_bh like ‘5400%’      trunc(sk_rq)=trunc(sysdate), 优化处理:sk_rq>=trunc(sysdate) and sk_rq   进行了显式或隐式的运算的字段不能进行索引,如:ss_df+20>50,优化处理:ss_df>30   
  
  sk_rq+5=sysdate,优化处理:sk_rq=sysdate-5      hbs_bh=5401002554,优化处理:hbs_bh=’5401002554’,注:此条件对hbs_bh 进行隐式的to_number转换,
因为hbs_bh字段是字符型。      条件内包括了多个本表的字段运算时不能进行索引,如:ys_df>cx_df,无法进行优化 

最新文章

  1. Nginx 和 IIS 实现动静分离
  2. MongoDB学习笔记(二:入门环境配置及与关系型数据库区别总结)
  3. 使用JDBC实现Oracle用户认证
  4. C# 中Join( )的理解
  5. 【系统】CentOS、Ubuntu、Debian三个linux比较异同
  6. 利用ps指令查看某个程序的进程状态
  7. php array函数实例应用
  8. 设计模式学习--复合模式(Compound Pattern)
  9. .net 判断日期格式yyyy-MM-dd hh:MM:ss的正则表达式
  10. vmware设置centos虚拟机nat联网(转)
  11. Android实现左右滑动指引效果
  12. Swift - 创建代理协议实现页面间参数传递和方法调用
  13. 解决phpmailer可以在windows下面发送成功, 在linux下面失败的问题
  14. php非阻塞
  15. SQL VIEW(视图)
  16. C/C++ 知识点---LIB和DLL的区别与使用(网摘)
  17. Django学习中遇到的问题(1)django migration No migrations to apply
  18. Java第二季
  19. eclipse中使用pull报错(git提交冲突)
  20. mybatis源码分析(四)---------------代理对象的生成

热门文章

  1. 基于 SailingEase WinForm Framework 开发优秀的客户端应用程序(1:概述)
  2. 读取xml数据装配到字典中
  3. Esay ui数据加载等待提示
  4. JavaScript随笔6
  5. python处理命令行参数
  6. Apache thrift RPC 双向通信
  7. html5中canvas的使用 获取鼠标点击页面上某点的RGB
  8. [C#] Linq To Objects - 如何操作文件目录
  9. 原生js之四步走搞定Ajax
  10. iOS开发——创建你自己的Framework