本篇记录有关oracle数据库优化的部分内容。
1.建表时如果字段用于存储数字,请使用number类型,不要使用varchar2和char,因为索引扫描时number的效率是它们的好几倍。
type number(19)
2.保证索引的字段都要有值,不要出现空值,可以给这个字段加个默认值,索引扫描时null值效率很低;
type number(19) default 1
3.关于联合索引,两个字段的索引可以不分先后,但是三个及三个以上时,请按照sql的字段顺序建立索引,正序反序都行:
select * from table where t1=1 and t2=2 and t3=3;
联合索引的顺序可为 t1,t2,t3 或 t3,t2,t1。
4.在sql中尽量不要使用逻辑计算,要将计算交给业务层去处理。
5.有时sql不走索引而全表扫描,可以在让sql强制走索引,table:表名或表的别名,IDX:索引名
select /*+INDEX(table IDX)*/* from table
6.给表做直方图。