1、索引应该建立在WHERE子句经常用到的表列上,如果在大表上频率使用某列或者某几列作为条件执行检索操作,并且检索的行数低于总行数的15%,那么应该考虑在该几行上添加索引。

2、为了提高多表连接的性能,应该在连接的列上面建立索引。

3、不要在无谓的小表上面建立索引,建立索引花费的空间和节约的时间比并不合适。

4、如果经常要在某列或者某几列上面执行排序操作,那么在这些列上面建立索引可以加快数据排序的速度。

5、如果没有特殊需求,或者加上索引节约时间不多的话,要限制索引数量,因为过多的索引会降低DML操作的速度,索引越多,DML操作的速度也就越慢,尤其对INSERT和DELETE的影响很大。因此规划索引时,必须权衡查询和DML的需求来决定。

6、删除不再需要不必要的索引。因为索引会降低DML的速度,所以删除不合理或者不需要的索引,不合理或者不需要的索引包括:①在小表上创建的索引②查询语句不会引用的索引

7、指定索引所在的表空间。建立索引时,即可以将索引和基表放在相同的表空间中,也可以放在不同的表空间中。将表和索引部署到相同的表空间是可以简化表空间的管理;将表盒索引不熟到不同的表空间可以提高访问性能。

8、当在大表上建立索引时,使用NOLOGGING选项可以最小化重做记录。使用NOLOGGING选项可以节省重做日志空间、降低索引建立时间、提高索引并行建立的性能。

9、为索引块添加数据时,Oracle会按照PCTFREE参数在索引块上预留部分空间,该预留空间是为将来的INSERT操作准备的。如果将来在表上执行大量的INSERT操作,那么应该在建立索引时设置较大的PCTFREE。需要注意,建立索引时不能指定PCTUSED关键字。

最新文章

  1. Linux系统GCC常用命令和GCC编译过程描述
  2. Java 中浮点数---------BigDecimal和double(初探)
  3. MVC中的自定义控件
  4. omnetpp inet
  5. JavaScript中知而不全的this (转)
  6. 发布到IIS的时候用户 'WWW-6743CC520E9\ASPNET' 登录失败
  7. js提交前弹出提示框
  8. npm scripts 助力前端开发,实时刷新浏览器
  9. 【HDOJ】1053 Entropy
  10. phonegap退出android程序
  11. 移动端APP列表点透事件处理方法
  12. [django]项目打包构建
  13. Fiddler状态栏
  14. git中Please enter a commit message to explain why this merge is necessary.
  15. mac 本地跨域
  16. 分布式系统缓存系列之guava cache
  17. zookeeper集群扩容/下线节点实践
  18. apache安装时的一些术语
  19. 微信小程序导出当前画布指定区域的内容并生成图片保存到本地相册(canvas)
  20. ASP.NET 关于GridView 表格重复列合并

热门文章

  1. .NET平台和C#语言
  2. android入门——Activity(2)
  3. 注意:只有xcode5.1创建的项目会自动适配iphone6,iphone6p
  4. 官网下载旧版本的Xcode
  5. Unity5UGUI 官方教程学习笔记(二)Rect Transform
  6. BZOJ 4311: 向量( 按时间分治 + 线段树 )
  7. 请求http服务
  8. SQLite 字符串连接
  9. Streams Studio配置Build options
  10. PHP开发APP接口