`

like %abc%

阅读更多

关键字: oracle 优化

象like '%abc%'之类的查询对于大表来说是个致命的性能瓶颈。下面说说如何优化.

该文的内容来自www.oracle.com.cn .原文是英文的。

1.如何优化 like '%abc'.

这种优化建立反序索引就可以了。

2.如何优化  like 'abc%'

这种比较好办,直接建立索引就可以了

3.如何优化 like '%abc%'

比如:

a.建立测试表mytable

 create table mytable   as select a.*,rpad('0',400,'0') dummy from all_objects a;

b.然后建立 起索引作用的表mytable_myind

 create table mytable_myind      as select a.rowid rid,a.object_name from mytable a

c.把起索引作用的表mytable_myind钉到内存里面

alter table mytable_myind storage (buffer_pool keep);

alter table mytable_myind  cache;

d.执行如下的sql语句:如果对于数据量大的表,那么速度有很大的提高。

select /*+rule*/ owner from mytable  where rowid in  
    ( select rid from mytable_myind 
          where object_name like '%DUAL%' 
      );

当然,可以使用触发器来更新表mytable_myind

分享到:
评论

相关推荐

    外研版(一起)英语二年级上册 Module1 I like the ABC song._(课件).ppt

    这篇内容主要围绕着小学二年级英语学习的主题,特别是关于外研版(一起)英语教材的Module1,主题为"I like the ABC song"。这个模块旨在教授孩子们基础的英语字母,并通过有趣的方式帮助他们记忆和书写。 首先,让...

    sql中的查询精华

    例如,如果你在`WHERE`子句中使用`LIKE 'abc%'`,它将匹配所有以"abc"开头的字符串,如"abcdef"、"abc123"等。反之,`LIKE '%abc'`则会匹配所有包含"abc"作为子串的字符串,不论其在字符串中的位置。 2. `_` 通配符...

    老生常谈MYSQL模式匹配 REGEXP和like的用法

    正则表达式支持更多的特殊字符和组合,如“.”(匹配任意单个字符),“[abc]”(匹配"a"、"b"或"c"),以及“[a-zA-Z]”(匹配所有小写或大写字母)。正则表达式中的“*”表示匹配前一个字符零次或多次。例如,“x*...

    MySql like模糊查询通配符使用详细介绍

    例如,`[abc]`匹配"a"、"b"或"c",而`[0-9]`匹配任何数字。 3. `*`重复操作符:`*`表示前面的字符可以出现零次或多次。例如,`x*`匹配任意数量的"x",`[0-9]*`匹配任意数量的数字,而`.*`匹配任何数量的任何字符。 ...

    SQL语句优化技术分析

    LIKE操作符通常用于模式匹配,例如在查询语句中使用`LIKE '%abc%'`来搜索包含“abc”的记录。这种形式的LIKE操作符由于其模糊匹配特性,在某些情况下会导致全表扫描,从而降低查询效率。因此,对于LIKE操作符的优化...

    SQL数据库模糊查询内容语句

    SELECT * FROM 表名 WHERE 名字 LIKE 'abc%'; ``` 在这个例子中,“%”是一个通配符,表示任意数量的字符,包括零个字符。 2. **INSTR函数** INSTR函数可以用来查找一个字符串在另一个字符串中首次出现的位置。...

    解析Microsoft Sql Server中的like语句

    例如,如果你的模式是`'%_abc%'`,而你希望匹配实际字符串中包含"_%abc%"的部分,你可以使用`'%\_abc%' ESCAPE '\'`来避免`_`被解释为通配符。 在SQL Server的查询中,LIKE语句提供了强大的字符串匹配功能,但同时...

    I like the ABC song PPT课件4

    【I like the ABC song PPT课件4】是一个专为英语教学设计的优秀PPT课件,适合教师在课堂上使用,以增强学生对字母和歌曲的兴趣。课件以"I like the ABC song"为主题,旨在教授孩子们学习英语的基础,如字母、单词...

    abc.rar_ABC

    WHERE 姓氏 LIKE '王%'; ``` 此外,为了提高查询效率和数据一致性,可能还需要设计合理的索引和实施约束。例如,电话号码字段可以创建唯一性约束,确保每个号码对应一个唯一的联系人。 在实际开发中,我们通常会...

    外研版(一起)英语二年级上册 Module1 Unit 1 I like the ABC song.(课件).ppt

    这篇内容是针对小学二年级学生的英语教学材料,主要聚焦在教授字母"Ii"以及相关的单词和短语。课件的设计旨在通过互动和游戏的方式帮助孩子们掌握字母"Ii"的发音和与其相关的词汇。 首先,我们可以看到课件中包含了...

    Do you like pears课改课教学设计、教学点评及教学反思.doc

    - **Warm-up**:通过ABC Phonics Chant Song和《An apple a day》歌曲,激发学生的学习兴趣,热身并引入话题。 - **Presentation**:逐个教授新单词,结合歌曲、实物、简笔画和课件,引导学生理解和使用复数形式,...

    MySql模糊查询like通配符使用详细介绍.pdf

    例如,“[abc]”匹配“a”、“b”或“c”。 * “-”:用来命名字符的一个范围。例如,“[a-z]”匹配任何小写字母,而“[0-9]”匹配任何数字。 * “*”:匹配零个或多个在它前面的东西。例如,“x*”匹配任何...

    asp.net根据数据库模糊检索

    SELECT * FROM YourTableName WHERE YourColumnName LIKE '%abc%' ``` 这里的'%'是通配符,'%abc%'表示查询包含"abc"的任何记录,无论"abc"出现在字符串的哪个位置。 在ASP.NET中,可以使用ASP.NET Web Forms或者...

    MySql模糊查询like通配符使用详细介绍.docx

    例如,“[abc]”匹配“a”、“b”或“c”。 * “*”匹配零个或多个在它前面的东西。例如,“x*”匹配任何数量的“x”字符,“[0-9]*”匹配的任何数量的数字,而“.*”匹配任何数量的任何东西。 正则表达式是...

    MySQL中LIKE子句相关使用的学习教程

    例如,`'%abc%'`将匹配任何包含"abc"序列的字符串,无论它在字符串中的位置如何。 - `_`代表单个任意字符。例如,`'abc_'`将匹配以"abc"开头,后面跟一个任意字符的字符串。 以下是一个简单的使用LIKE子句的例子: ...

    Oracle中常用的通配符

    - `SELECT * FROM table_name WHERE column_name LIKE '%abc%'`:查找所有包含“abc”的记录。 - `SELECT * FROM table_name WHERE column_name LIKE 'abc%'`:查找以“abc”开头的所有记录。 - `SELECT * FROM ...

    mysql like查询字符串示例语句

    正则表达式使用更丰富的语法,如`.`匹配任何单个字符,`[abc]`匹配“a”、“b”或“c”,`[a-zA-Z]`匹配所有字母,`^`和`$`分别表示字符串的开始和结束,`*`表示前面的元素可以出现零次或多次。 - 例如,`SELECT * ...

    SQL中代替Like语句的另一种写法

    "SQL中代替Like语句的另一种写法" 在SQL中, LIKE 语句是一个非常常用的语句,它用于搜索某个模式的字符串。然而,在某些情况下,使用 LIKE 语句可能会出现一些性能问题。因此,本文将介绍 SQL 中代替 LIKE 语句的...

    abc.rar_Again Again

    【描述】中的 "thid is wonderful to again see a program like thid jaijsksds asdfg vbnm lkio puy trvted" 虽然存在拼写错误,但我们可以推测用户对这个程序或者内容感到非常兴奋和赞赏。"jaijsksds"看起来像是乱...

Global site tag (gtag.js) - Google Analytics