- 浏览: 76172 次
- 性别:
- 来自: 苏州
最新评论
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的schema、方案、模式、用户
2012-12-07 12:11 1147今天才对这几个概念 ... -
DBMS_STATS.GATHER_TABLE_STATS详解
2012-08-15 15:12 1810作用:DBMS_STATS.GATHER_TABLE_S ... -
Oracle表连接操作——Merge Sort Join(合并排序连接)
2012-08-15 15:12 3357关系型数据库并不是最早出现的数据库表现形式,之前还存在层 ... -
Oracle表连接操作——Nest Loop Join(嵌套循环)
2012-08-15 15:12 7952关系型数据库并不是最 ... -
Oracle hash join
2012-08-15 15:13 1032hash join是oracle里面一个 ... -
Oracle表连接操作——Hash Join(哈希连接)下
2012-08-15 15:13 1648Hash Join是Oracle CBO时代经常出现的一 ... -
Oracle表连接操作——Hash Join(哈希连接)上
2012-08-14 14:19 13968在Oracle中,确定连接操作类型是执行计划生成的重要方 ... -
oracle 递归查询,向上和向下遍历
2012-08-14 11:10 19362--查询全部资源信息 select * from urm_cl ... -
SQL语句优化技术分析
2012-08-14 11:08 947一、操作符优化1、IN 操 ... -
CBO和RBO介绍
2012-08-14 11:08 899Rule Based Optimizer(RBO) ... -
Install Oracle10gXE on Ubuntu Server using apt
2012-03-19 17:22 843With Oracle Database XE in prod ... -
Merge into 详细介绍
2012-03-15 15:40 950/*Merge into 详细介绍 MERGE ... -
ora-12516 tns listener could not find available handler with matching protocol
2012-03-12 15:51 8692公司数据库安装的是 Oracle10g XE(Oracle D ... -
CUUG《Oracle 监听和TNS配置》- 笔记
2012-02-24 22:07 2204监听负责多个实例 相关文件:Listener.ora和 ... -
批处理备份oracle
2012-02-24 22:07 840@echo off @title Oracle简易数据备份工具 ... -
oracle-ORA的原理
2012-02-07 14:15 10461、在一个应用环境当中,所有的服务器使用和管理同一个数据库,目 ... -
Oracle的卸载过程
2012-02-07 12:15 909修改注册表,在开始运行中执行regedit命令,进入注册表, ... -
创建表空间文件
2012-02-07 12:12 2255--1 创建表空间文件 --1.1 创建ASIT 实体表空间 ... -
SQL触发器实例讲解
2012-02-07 12:10 845SQL触发器实例1 定义: ... -
oracle 10g 默认用户名密码及解锁
2012-02-07 12:04 9981. 安装时选择的自动安装,忘了用户名和密码,导致现在试了几个 ...
相关推荐
在Oracle数据库中,进行模糊查询时,我们常常会遇到两种主要的方法:`LIKE`和`INSTR`。本文将深入探讨这两个函数在性能上的差异,并通过实例代码展示它们的实际效果。 `LIKE`是SQL标准中的一个操作符,常用于字符串...
例如,Oracle数据库中的`INSTR`函数用于查找一个字符串在另一个字符串中的位置,而Informix数据库虽然强大但其原生支持的功能与Oracle并不完全相同。因此,在某些情况下,开发人员可能需要编写特定的函数来模拟...
但是,使用contains谓词有个条件,那就是列要建立索引,也就是说如果上面语句中students表的address列没有建立索引,那么就会报错。 好在我们还有另外一个办法,那就是使用instr,instr的用法如下: select * from ...
理解并熟练掌握`substr`和`instr`函数,能够极大地提高你在处理Oracle数据库中的字符串数据时的效率和灵活性。无论是进行简单的文本处理,还是复杂的SQL查询,这两个函数都能提供强大的支持。在实际应用中,常常会将...
Oracle中的`instr`函数是一个非常实用的字符串处理函数,它用于在源字符串中查找目标字符串的位置。函数的基本语法如下: ```sql instr(string1, string2 [, start_position [, nth_appearance ] ]) ``` - `string...
在实际工作中,`instr()`函数在处理Oracle数据库中的字符串数据时,提供了很大的便利性,无论是进行数据提取还是数据过滤,都是一个不可或缺的工具。熟悉和掌握`instr()`的用法,能极大地提升数据库操作的效率和灵活...
8. **使用instr代替LIKE**:对于需要使用LIKE进行过滤的情况,可以考虑使用Oracle内置的instr函数,它通常比LIKE操作更快。 9. **避免使用UNION**:UNION操作会删除重复记录,这需要排序操作,可能会消耗大量资源。...
在Oracle数据库中,有三个非常重要的字符串处理函数:INSTR、NVL和SUBSTR。这些函数在处理文本数据时起到至关重要的作用。 1. **INSTR函数**: INSTR函数用于在一个字符串中查找另一个子字符串的位置。其基本语法...
orafce就是为了解决这个问题,它提供了一套与Oracle类似的函数接口,使得开发者可以在PostgreSQL环境中使用类似于Oracle的语法。 使用orafce,你可以实现以下功能: 1. **日期和时间处理**:例如,你可以使用orafce...
### INSTR函数在Oracle数据库中的应用 #### 一、INSTR函数概述 INSTR是Oracle数据库中的一个常用字符串处理函数,其主要功能是在一个指定的字符串(目标字符串)中查找另一个字符串(搜索字符串)的位置。如果找到...
Oracle instr 函数与 substr 函数详细说明 oracle 中的 instr 函数和 substr 函数是两种常用的字符串处理函数,它们可以用来处理和操作字符串数据。 Instr 函数 Instr 函数的主要作用是返回要截取的字符串在源...
`REGEXP_LIKE`在Oracle 10g中的应用极大地扩展了数据查询的灵活性和功能。通过熟练掌握正则表达式的语法和特性,数据库管理员和开发人员可以更有效地管理和操作文本数据,提高数据检索和处理的效率。此外,结合其他...
Oracle 中实现 Split 函数功能 Oracle 中实现 Split 函数功能是指在 Oracle 数据库中实现类似于 C# 等编程语言中的 Split 函数,用于拆分字符的功能。下面是实现 Oracle 中 Split 函数功能的详细介绍。 首先,...
在Oracle SQL中,通配符主要用于`LIKE`操作符中,用于模糊查询。常见的通配符包括`%`、`_`等。此外,还有一些特殊的字符,如`#`、`[`、`]`等,它们虽然不是严格意义上的通配符,但在特定场景下可以起到类似的作用。 ...
VB 中 InStr 函数的使用和实现文本查找功能 VB 中的 InStr 函数是一个非常重要和常用的函数,它可以返回指定字符串在另一个字符串中最先出现的位置。其语法为 InStr([start, ]string1, string2[, compare]),其中 ...
在这个例子中,添加 `ROWNUM = 1` 后,查询时间从原来的 45 秒减少到了 4 秒,极大地提高了查询效率。 通过以上实例可以看出,合理利用 Oracle 提供的各种提示和技巧,可以在处理大量数据时显著提升查询性能。这些...