使用oracle索引列时条件类型不匹配列类型,将无法触发索引
表结构如下:
问题:
AC 列上建立了索引IDX_ATEST_AC,但是却没有使用
衍生问题:
由于不使用索引,造成操作时间变长;当此操作的表为主表并且关联有复杂事物的操作时,随着主表数据量渐渐增加,在数量到达百万时,主表频繁被锁的请况将大几率出现。
解决:
原因是where条件的类型不对,这个问题也常见使用hibernate表映射主键使用seqence 序列自动生成,但是列类型是字符串的实例中,修改如下:
建议:
在主键时尽量不要使用序列,而使用GUID,以避免上述问题。