1.什么类型就放什么值,否则会发生类型转换,导致性能问题!
存放字符的字段就设置varchar2类型
存放数值的字段就设置number类型
存放日期的字段就设置date类型
举例:设置ID为varchar2类型,并为之设置普通索引,模拟插入10000条数据
根据ID从表中select 数据,ID输入 的是数值类型,实际上oracle会将id转换为number类型,即下面的语句等同于:
select * from t_col_type where to_number(id)=6;
这样在索引字段上使用 了函数,导致索引字段的索引失效
优化点:可以将语句写成:
select * from t_col_type where id='6';(图3)
或
将ID字段的类型设置为number类型
2.oracle的char类型,Long类型建议不要使用,使用varchar2d代替char,Clob代替Long