怎么解决ORACLE 中 CHAR类型的索引问题
在很多场景中,都有如下情况
trim(a.colunm1) = trim(b.colunm2)
应该怎么优化呢?
用到 TRIM 的很多原因是某些系统为了提高查询效率,不使用 ORACLE 的特有的,优秀的,且前无古人后无来者定义的 VARCHAR2 ,而是使用 CHAR 类型,写死了字符长度。
因此,在关联查询的时候就郁闷了,新建立的表就使用的 VARCHAR2 ,如果不用 TRIM 去掉 CHAR 类型的空格吧,又没办法匹配,如果用 TRIM 吧,索引又被破坏。
而且,重点是,虽然添加一个TRIM(COLUNM1)索引能提高查找效率,但是也增加了存储空间,并且影响写入效率。
怎么办!!!!怎么办!!!
还好你看了我的文章,因为我的聪明才智,想到了补全空格的方法:
RPAD(A.COLUNM1,'字符长度','空格') = B.COLUNM2
这样是否完美解决了呢!
效率还倍儿高!
后来发现这不是我的原创,百度早有了。。。
怎么解决ORACLE 中 CHAR类型的索引问题的更多相关文章
- Oracle中Clob类型处理解析:ORA-01461:仅可以插入LONG列的LONG值赋值
感谢原作者:破剑冰-Oracle中Clob类型处理解析 上一篇分析:ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值 最近为Clob字段在插入数据时发现当字符的字节数(一个半角字符一 ...
- oracle中日期类型 to_date 和to_timestamp什么区别啊?
1.to_date() 和to_timestamp()区别 由于oracle中date类型只支持到秒,不支持到毫秒,所以to_date()不能取到毫秒.如果要取到毫秒,oracle 9i以上版本,可以 ...
- 在vs中char类型的实参与LPCWSTR类型的形参类型不兼容怎么解决?
今天在做 COS脚本解释器的时候,遇到了这个问题 先了解一下 LPCTCHAR 这个东东 LPCTSTR用来表示你的字符是否使用UNICODE, 如果你的程序定义了UNICODE或者其他相关的宏,那么 ...
- oracle中char,vchar,vchar2的区别与联系
1.char是固定长度的,例如你定义某一列类型为char(20).那么即便你插入"abcde"5个字节,数据库也会在后面自动加上15个字节(可能为空格),以补足二十个字节. 2.v ...
- Oracle中Clob类型处理解析
最近利用NHibernate映射类型为Clob字段在插入数据时发现当字符的字节数(一个半角字符一个字节,一个全角字符两个字节)在2000-4000之间时报错(ORA-01461:仅可以插入LONG列的 ...
- Oracle中NULL值与索引
NULL值是关系数据库系统布尔型(true,false,unknown)中比较特殊类型的一种值,通常称为UNKNOWN或空值,即是未知的,不确定的.由于NULL存在着无数的可能,因此NULL值也不等于 ...
- Oracle中Clob类型处理解析 (转)
转:原文:http://blog.csdn.net/pojianbing/article/details/2789426 最近利用NHibernate映射类型为Clob字段在插入数据时发现当 ...
- Oracle中varchar2类型字段长度限制使用问题
为纪念中华人民共和国建军90周年,特此一篇,以此纪念,我军威武!!! 一.问题背景 项目中商品发布,却没有保存成功. 二.问题定位 初步判断向数据库中保存时出现了错误,查看日志文件,由于日志文件过大就 ...
- oracle中char],varchar,varchar2
VARCHAR.VARCHAR2.CHAR的区别 1.CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 比如,存储字符串"abc",对于CHAR (20),表示你存储 ...
随机推荐
- 正规方程 Normal Equation
正规方程 Normal Equation 前几篇博客介绍了一些梯度下降的有用技巧,特征缩放(详见http://blog.csdn.net/u012328159/article/details/5103 ...
- [转]How to solve SSIS error code 0xC020801C/0xC004700C/0xC0047017
本文转自:http://www.codeproject.com/Articles/534651/HowplustoplussolveplusSSISpluserrorpluscodeplus0xC B ...
- python微信公众号开发学习记录
网上有很多微信公众号的开发教程,但是都是好几年前的了,而且很多都是抄袭其他人的,内容几乎一模一样.真的无语了.只好自己总结一下开发的一些简单流程. 一先去注册个微信公众号,这个就不详细说了, 二登录后 ...
- http://www.cnblogs.com/carekee/articles/1854674.html
http://www.cnblogs.com/carekee/articles/1854674.html http://www.cnblogs.com/xdp-gacl/p/3926848.html
- Java Web 设置默认首页 (也就是http://域名/项目名称/)访问的页面
第一种: 默认的是index.jsp页面,放在webapp文件夹下 在web.xml配置如下 第二种: 默认的页面不是放在webapp文件夹下,而是放在web-inf下,那么此时可以用springMV ...
- Microsoft.Office.Workflow.Actions Namespace
Microsoft.Office.Workflow.Actions Namespace SharePoint 2010 Contains the workflow activities that ...
- Expression-Based Access Control
Expression-Based Access Control Spring Security 3.0 introduced the ability to use Spring EL expressi ...
- SQLServer:探讨EXEC与sp_executesql的区别详解
摘要 MSSQL为我们提供了两种动态执行SQL语句的命令,分别是EXEC和sp_executesql;通常,sp_executesql则更具有优势,它提供了输入输出接口,而EXEC没有.还有一个最大的 ...
- 解决ARC的循环引用问题
看看下面的程序有什么问题: BNRItem.h @interface BNRItem : NSObject @property (nonatomic, strong) BNRItem *contain ...
- Choose which tree,form view in many2one
<field name="partner_id" context="{'ref_form_view': 'view_id_of_my_form','ref_tree ...