近期发现自己写的应用程序效率低下,登陆系统时速度超慢,后发现执行了一个全表查询语句,这个语句就将近耗时2分钟,在网上查询了一些优化方法,总结如下:
1、like
在查询表时,数据量比较大,尽量不要使用 like % 的语句,这样会导致语句使用全表查询,降低查询效率;
例如:select count(1) from ld_grxxsy where djdw like ‘GA14%’;
如果转换为:select count(1) from ld_grxxsy where instr(djdw,’GA14’) >0;
将会大幅提高查询效率,由原来查询2分钟反馈结果缩短至不到1秒。
2、instr函数
语法如下:
instr( string1, string2, start_position,nth_appearance )
string1:源字符串,要在此字符串中查找。
string2:要在string1中查找的字符串 。
start_position:代表string1 的哪个位置开始查找。此参数可选,如果省略默认为1. 字符串索引从1开始。如果此参数为正,从左到右开始检索,如果此参数为负,从右到左检索,返回要查找的字符串在源字符串中的开始索引。
nth_appearance:代表要查找第几次出现的string2. 此参数可选,如果省略,默认为 1.如果为负数系统会报错。
注意:
位置索引号从1开始。
如果String2在String1中没有找到,instr函数返回0。
示例:
SELECT instr(‘syranmo’,’s’) FROM dual; – 返回 1
SELECT instr(‘syranmo’,’ra’) FROM dual; – 返回 3
SELECT instr(‘syran mo’,’at’,1,2) FROM dual; – 返回 0
相关推荐
【BigWorld 游戏服务器引擎】Cell 架构设计介绍,及Java实现方案的探索
横向扩展(Scalability):通过动态增减CellApp和BaseApp的数量,可以轻松应对玩家人数的变化。世界可以做得非常大,只需增加更多的 Cell。负载分离(Load Separation):将不同性质的负载分离,避免了单一进程瓶颈。CPU 密集型的实时计算(CellApp)和 I/O 密集型的数据操作(BaseApp)互不影响。高效的视野管理(AOI):每个 Cell 只关心自己区域内和边界上的实体,大大降低了计算复杂度。容错性:某个CellApp。
优化Oracle数据库性能:LIKE操作的优化
在 Oracle 数据库中,LIKE 操作是一种常用的模糊匹配方式,用于在字符串中查找符合指定模式的数据。然而,当处理大量数据时,使用 LIKE 操作可能导致查询性能下降。为了提高数据库的效率,本文将重点介绍如何优化使用 LIKE 操作的查询。 索引前缀搜索是一种优化 LIKE 操作的方法,通过使用索引的前缀匹配来提高查询性能。下面我们将详细介绍如何使用索引前缀搜索来优化 LIKE 操作。
部分旧版统信国产系统下载资源
注:全部自来网络查找,建议到官网下载最新版。
Oracle like语句使用
% 零或者多个字符 _ 单一任何字符(下划线) \ 特殊字符 [] 在某一范围内的字符,如[0-9]或者[aeth] [^] 不在某范围内的字符,如[^0-9]或者[^aeth ]1.%:表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。 将u_name有"三"字符的记录全部找出 找出u_name中既有"三"又有"猫"的记录,请使用and条件 搜索“三”在“猫”前面且仅含有一次“三”和“猫” 2. _ 表示任意单个
Oracle中那些like 低效率优化处理方案
Oracle中那些like 低效率优化处理方案
oracle数据库like查询数据优化
instr(字段,'关键字') = 1 相当于 字段like '关键字%' 表示以‘关键字’开头的字符串。instr(字段,'关键字') > 0 相当于 字段like '%关键字%' 表示在字符串中包含‘关键字’instr(字段,'关键字') = 0 相当于 字段not like '%关键字%' 表示在字符串中不包含‘关键字’
Oracle like 优化
(1) 选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE 的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表
ORACLE中LIKE语句优化
1。尽量不要使用 like '%%' 2。对于 like '%' (不以 % 开头),Oracle可以应用 colunm上的index 3。对于 like '%…' 的 (不以 % 结尾),可以利用reverse + function index 的形式,变化成 li
Oracle SQL 语句中对Like的优化
[color=red][color=red]1、尽量不要使用 like '%..%' 2、对于 like '..%..' (不以 % 开头),Oracle可以应用 colunm上的index 3、对于 like '%...' 的 (不以 % 结尾),可以利用 reverse + function index 的形式,变化成 like '..%' 代码[/color][/color] 建...
oracle数据库like语句优化,Like SQL语句的优化
Like SQL语句的优化的一个小测试1.尽量不要使用 like '%..%'2.对于 like '..%..' (不以 % 开头),Oracle可以应用 colunm上的index3.对于 like '%...' 的 (不以 % 结尾),可以利用reverse + function index 的形式,变化成 like '..%'具体的测试流程: (测试工具:PLSQL Developer)[1...
Oracle_优化_Like语句优化
1.尽量不要使用 like '%%' 2.对于like '%' 可以用列的索引 3.对于like'%...'(以%开头,不以%结尾)可以利用 反序列和函数索引 变成 like '%' 4.查询 like '%xx%' 应该使用函数INSTR(String source, String xx) 例如:SELECT COUNT(*) FROM tb_name a WHERE INSTR(a.c
oracle数据库like语句优化,使用reverse索引优化like语句
--原查询sql如下:select t.CUST_ID,t.CUST_NAME,t.CUST_SEX_DM,t.GRADE_NO,t.ID_CARD,t.CUST_AGE,t.TEL_WORK,t.TEL_HOME,t.TEL_MOBILE,t.CUST_EMAIL,t.HOME_ADDRESS,t.ADDRESS_WORK,t.POST_WORK,t.POST_HOME,t.CUST_TYPE,...
oracle数据库like语句优化,教你高速掌握Oracle数据库中的like优化-性能调优
当前位置:我的异常网» 数据库»教你高速掌握Oracle数据库中的like优化-性能调优教你高速掌握Oracle数据库中的like优化-性能调优www.myexceptions.net网友分享于:2013-08-10浏览:3次教你快速掌握Oracle数据库中的like优化-性能调优1。尽量不要使用 like '%..%'2。对于 like '..%..' (不以 % 开头),Oracl...
Oracle SQL 语句中对Like的优化(引用reverse函数)
重点关注reverse用法:reverse(字段)like reverse(属性值);实际例子体现出得查询效率: select Max(Ana_Rqb_Date) from Ana_Rqb where ana_rqb_org_id like 00%; --25s select Max(Ana_Rqb_Date
oracle revers函数,Oracle SQL 语句中对Like的优化(引用reverse函数)
重点关注reverse用法:reverse(字段)like reverse(属性值);实际例子体现出得查询效率:select Max(Ana_Rqb_Date) from Ana_Rqb where ana_rqb_org_id like '00%';--25sselect Max(Ana_Rqb_Date) from Ana_Rqb where reverse(ana_rqb_org_id)li...
Oracle数据库中简单的Like优化-作者: RollingPig
<br />简单说两句,具体看例子 1。尽量不要使用 like '%..%' 2。对于 like '..%..' (不以 % 开头),Oracle可以应用 colunm上的index 3。对于 like '%...' 的 (不以 % 结尾),可以利用reverse + function index 的形式,变化成 like '..%' <br /><br /> 简单说两句,具体看例子<br /> 1。尽量不要使用 like '%..%'<br /> 2。对于 like '..%..' (不
sql语句查询,多字段like模糊查询优化【转载】【oracle】
1、多字段like模糊查询优化: 最常见的写法: where a like '%xx%' or b like '%xx%' or c like '%xx%'; 这种写法查询效率低,经过调查,下面的方法可以替代,并且效率高: 2、如果like的关键字相同: where instr(nvl(a, '')||nvl(b,'')||nvl(c,''), 'xx') > 0 把要模糊查询的字段先拼接起来,拼接时需要把null转成‘’,否则只要有一个字段值是空,整个拼接的字符串都成空了, 然后用i
1139




被折叠的 条评论
为什么被折叠?



