`
763691
  • 浏览: 42505 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

ORACLE中Like与Instr性能大比拼(转)

阅读更多

http://zhaolinjnu.blog.sohu.com/108165720.html

t表中将近有1100万数据,很多时候,我们要进行字符串匹配,在SQL语句中,我们通常使用like来达到我们搜索的目标。但经过实际测试发现,like的效率与instr函数差别相当大。下面是一些测试结果:

SQL> set timing on
SQL> select count(*) from t where instr(title,'手册')>0;

  COUNT(*)
----------
     65881

Elapsed: 00:00:11.04
SQL> select count(*) from t where title like '%手册%';

  COUNT(*)
----------
     65881

Elapsed: 00:00:31.47
SQL> select count(*) from t where instr(title,'手册')=0;

  COUNT(*)
----------
  11554580

Elapsed: 00:00:11.31
SQL> select count(*) from t where title not like '%手册%';

  COUNT(*)
----------
  11554580

另外,我在结另外一个2亿多的表,使用8个并行,使用like查询很久都不出来结果,但使用instr,4分钟即完成查找,性能是相当的好。这些小技巧用好,工作效率提高不少。通过上面的测试说明,ORACLE内建的一些函数,是经过相当程度的优化的。

分享到:
评论

相关推荐

    Oracle中Like与Instr模糊查询性能大比拼

    在Oracle数据库中,进行模糊查询时,我们常常会遇到两种主要的方法:`LIKE`和`INSTR`。本文将深入探讨这两个函数在性能上的差异,并通过实例代码展示它们的实际效果。 `LIKE`是SQL标准中的一个操作符,常用于字符串...

    informix数据库实现oracle环境instr函数功能

    例如,Oracle数据库中的`INSTR`函数用于查找一个字符串在另一个字符串中的位置,而Informix数据库虽然强大但其原生支持的功能与Oracle并不完全相同。因此,在某些情况下,开发人员可能需要编写特定的函数来模拟...

    oracle使用instr或like方法判断是否包含字符串

    但是,使用contains谓词有个条件,那就是列要建立索引,也就是说如果上面语句中students表的address列没有建立索引,那么就会报错。 好在我们还有另外一个办法,那就是使用instr,instr的用法如下: select * from ...

    Oracle的substr和instr函数简单用法

    理解并熟练掌握`substr`和`instr`函数,能够极大地提高你在处理Oracle数据库中的字符串数据时的效率和灵活性。无论是进行简单的文本处理,还是复杂的SQL查询,这两个函数都能提供强大的支持。在实际应用中,常常会将...

    Oracle中instr函数使用方法

    Oracle中的`instr`函数是一个非常实用的字符串处理函数,它用于在源字符串中查找目标字符串的位置。函数的基本语法如下: ```sql instr(string1, string2 [, start_position [, nth_appearance ] ]) ``` - `string...

    Oracle中的instr()函数应用及使用详解

    在实际工作中,`instr()`函数在处理Oracle数据库中的字符串数据时,提供了很大的便利性,无论是进行数据提取还是数据过滤,都是一个不可或缺的工具。熟悉和掌握`instr()`的用法,能极大地提升数据库操作的效率和灵活...

    Oracle如何对CLOB行字段来执行全文检索

    Oracle 数据库中,CLOB 行字段是一种常用的数据类型,用于存储大文本数据。然而,在 Oracle8i 版本之前,对大字段 CLOB 仍然不支持在 where 子句直接的 Like 操作。这使得开发者无法直接对 CLOB 字段中的内容进行 ...

    Oracle性能优化的基本准则总结

    8. **使用instr代替LIKE**:对于需要使用LIKE进行过滤的情况,可以考虑使用Oracle内置的instr函数,它通常比LIKE操作更快。 9. **避免使用UNION**:UNION操作会删除重复记录,这需要排序操作,可能会消耗大量资源。...

    oracle转成postgre时,oracle中函数的处理工具(orafce)

    orafce就是为了解决这个问题,它提供了一套与Oracle类似的函数接口,使得开发者可以在PostgreSQL环境中使用类似于Oracle的语法。 使用orafce,你可以实现以下功能: 1. **日期和时间处理**:例如,你可以使用orafce...

    Oracle中的INSTR,NVL和SUBSTR函数的用法详解

    在Oracle数据库中,有三个非常重要的字符串处理函数:INSTR、NVL和SUBSTR。这些函数在处理文本数据时起到至关重要的作用。 1. **INSTR函数**: INSTR函数用于在一个字符串中查找另一个子字符串的位置。其基本语法...

    INSTR的用法 Oracle里的Indexof

    ### INSTR函数在Oracle数据库中的应用 #### 一、INSTR函数概述 INSTR是Oracle数据库中的一个常用字符串处理函数,其主要功能是在一个指定的字符串(目标字符串)中查找另一个字符串(搜索字符串)的位置。如果找到...

    oracle中instr函数与substr函数详细说明(附实例)[归类].pdf

    Oracle instr 函数与 substr 函数详细说明 oracle 中的 instr 函数和 substr 函数是两种常用的字符串处理函数,它们可以用来处理和操作字符串数据。 Instr 函数 Instr 函数的主要作用是返回要截取的字符串在源...

    oracle_10g正则表达式_REGEXP_LIKE_用法

    `REGEXP_LIKE`在Oracle 10g中的应用极大地扩展了数据查询的灵活性和功能。通过熟练掌握正则表达式的语法和特性,数据库管理员和开发人员可以更有效地管理和操作文本数据,提高数据检索和处理的效率。此外,结合其他...

    Oracle中常用的通配符

    在Oracle SQL中,通配符主要用于`LIKE`操作符中,用于模糊查询。常见的通配符包括`%`、`_`等。此外,还有一些特殊的字符,如`#`、`[`、`]`等,它们虽然不是严格意义上的通配符,但在特定场景下可以起到类似的作用。 ...

    Oracle中实现Split函数功能

    Oracle 中实现 Split 函数功能 Oracle 中实现 Split 函数功能是指在 Oracle 数据库中实现类似于 C# 等编程语言中的 Split 函数,用于拆分字符的功能。下面是实现 Oracle 中 Split 函数功能的详细介绍。 首先,...

    vb中instr函数

    VB 中 InStr 函数的使用和实现文本查找功能 VB 中的 InStr 函数是一个非常重要和常用的函数,它可以返回指定字符串在另一个字符串中最先出现的位置。其语法为 InStr([start, ]string1, string2[, compare]),其中 ...

Global site tag (gtag.js) - Google Analytics