INDEX相关

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

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

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

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

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

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

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

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

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

原文地址:https://www.cnblogs.com/JeromeZ/p/5337797.html