码迷,mamicode.com
首页 > 数据库 > 详细

怎么解决ORACLE 中 CHAR类型的索引问题

时间:2017-10-12 21:43:52      阅读:297      评论:0      收藏:0      [点我收藏+]

标签:提高   空格   存储   应该   怎么办   类型   style   arc   不用   

在很多场景中,都有如下情况

trim(a.colunm1) = trim(b.colunm2)

应该怎么优化呢?

用到 TRIM 的很多原因是某些系统为了提高查询效率,不使用  ORACLE 的特有的,优秀的,且前无古人后无来者定义的  VARCHAR2 ,而是使用 CHAR 类型,写死了字符长度。

因此,在关联查询的时候就郁闷了,新建立的表就使用的 VARCHAR2 ,如果不用 TRIM 去掉 CHAR 类型的空格吧,又没办法匹配,如果用 TRIM 吧,索引又被破坏。

而且,重点是,虽然添加一个TRIM(COLUNM1)索引能提高查找效率,但是也增加了存储空间,并且影响写入效率。

怎么办!!!!怎么办!!!

还好你看了我的文章,因为我的聪明才智,想到了补全空格的方法:

RPAD(A.COLUNM1,字符长度,空格) = B.COLUNM2

这样是否完美解决了呢!

效率还倍儿高!

后来发现这不是我的原创,百度早有了。。。

 

怎么解决ORACLE 中 CHAR类型的索引问题

标签:提高   空格   存储   应该   怎么办   类型   style   arc   不用   

原文地址:http://www.cnblogs.com/yhoralce/p/7657976.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!