加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

Oracle数据库中不区分巨细写搜刮的机能

发布时间:2021-03-05 15:07:25 所属栏目:站长百科 来源:网络整理
导读:我的数据库配景位于MS SQL Server端,个中索引和束缚中的文本较量不区分巨细写(至少在默认环境下).因此,一旦将值“abc”分派给独一列,就不能存储第二个值“ABC”,假如搜刮“ABC”,SQL Server将找到“abc”. 对付Oracle,环境有所差异,以是纵然文本列上有独一索

我的数据库配景位于MS SQL Server端,个中索引和束缚中的文本较量不区分巨细写(至少在默认环境下).因此,一旦将值“abc”分派给独一列,就不能存储第二个值“ABC”,假如搜刮“ABC”,SQL Server将找到“abc”.

对付Oracle,环境有所差异,以是纵然文本列上有独一索引,也可以存储“abc”和“ABC”,假如搜刮“AbC”,则不会获得任何功效.

在Oracle 10gR2之前的AFAIK没有步伐绕过它,此刻可以配置不敏感的较量,由于恕我直言,由于统统都取决于措施员的规律.

可是对付区分巨细写的查找最糟糕的是,那些将全部搜刮重写为UPPER(some_column)= UPPER(some_text)(这是很多接头主题保举的)的人纵然在some_column上有索引时也会以表扫描竣事.机能寄义是不不变的:我方才在一个有50万行的表上测试了一个简朴的搜刮,而且行使UPPER函数挪用的搜刮比仅行使列标识符的搜刮耗费了20倍,从而确认在执行函数时不行使索引基于搜刮.

在Oracle数据库中举办不区分巨细写搜刮的最尺度技能是否真的云云,纵然机能不佳,照旧应用UPPER / LOWER函数来搜刮元素?可能有更优雅的要领来办理这个题目?

办理要领

是的,行使UPPER(some_column)= UPPER(some_text)确实是最好的要领,但你可以在 UPPER(some_column)上建设索引.这应该可以缓解这个题目.

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读