千家信息网

oracle表和索引设计基本建议

发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,表物理设计基本建议: 1、除特殊需求,建议采用普通的堆表(heap table)。 2、每个表在创建的时候,建议制定所在的表空间,不用默认表空间。 3、建议根据dml操作频度数值,如果update操作
千家信息网最后更新 2024年11月22日oracle表和索引设计基本建议表物理设计基本建议: 1、除特殊需求,建议采用普通的堆表(heap table)。 2、每个表在创建的时候,建议制定所在的表空间,不用默认表空间。 3、建议根据dml操作频度数值,如果update操作频度高,则可将PCTFREE设置为较高,反之,则可将PCTFREE设置为较低。 4、当表中存在大量delete操作时,PCTUSED值的增大,将提高空间的使用率。 5、对并发访问量比较高的表和索引,将INITRANS设置较大,特别是针对索引,例如设置INITRANS设为10. 6、对较小的代码和参数表,可考虑IOT表技术。 7、如果某个静态表关系比较密切,则可以采用聚簇表的方法。
索引设计基本建议: 1、通常而言,交易系统建立为B*树索引,对数据库仓库,则可考虑Bitmap、Bitmap join等索引。 2、通过分析应用软件对数据访问方式,展开索引设计。 3、索引和数据分别存储在不同的表空间。 4、不要对索引字段进行运算。 5、不要对索引字段进行格式转换。 6、不要对索引字段使用函数。 7、加强使用和索引效率的分析。 8、不要对索引字段使用NULL值,因为索引不能存储空值。
B*树单字段索引设计建议: 1、分析sql语句中的约束条件字段。 2、如果约束条件不固定,建议创建针对单字段的普通B*索引。 3、选择可选性最高的字段建立索引。 4、如果是夺标连接sql语句,注意被驱动表(drived table)的连接字段是否需要创建索引。 5、通过多种sql分析工具,分析执行计划并以量化形式评估效果。
复合索引设计建议 1、分析sql语句中的约束条件字段。 2、如果约束条件字段比较固定,则优先考虑创建多字段的普通B*树复合索引。 3、如果字段是主键或唯一条件,或者可选性非常高的字段,尽管约束条件字段比较固定,也不一定要建成复合索引,可建成单字段索引,降低复合索引开销。 4、在复合索引的第一个字段作为约束条件,该复合索引才会启用,按照可选性高低,进行复合索引字段的排序。
本文建议摘自罗敏老师的《oracle品悟高性能优化》。



















0