关键字: 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"。这个模块旨在教授孩子们基础的英语字母,并通过有趣的方式帮助他们记忆和书写。 首先,让...
例如,如果你在`WHERE`子句中使用`LIKE 'abc%'`,它将匹配所有以"abc"开头的字符串,如"abcdef"、"abc123"等。反之,`LIKE '%abc'`则会匹配所有包含"abc"作为子串的字符串,不论其在字符串中的位置。 2. `_` 通配符...
正则表达式支持更多的特殊字符和组合,如“.”(匹配任意单个字符),“[abc]”(匹配"a"、"b"或"c"),以及“[a-zA-Z]”(匹配所有小写或大写字母)。正则表达式中的“*”表示匹配前一个字符零次或多次。例如,“x*...
例如,`[abc]`匹配"a"、"b"或"c",而`[0-9]`匹配任何数字。 3. `*`重复操作符:`*`表示前面的字符可以出现零次或多次。例如,`x*`匹配任意数量的"x",`[0-9]*`匹配任意数量的数字,而`.*`匹配任何数量的任何字符。 ...
LIKE操作符通常用于模式匹配,例如在查询语句中使用`LIKE '%abc%'`来搜索包含“abc”的记录。这种形式的LIKE操作符由于其模糊匹配特性,在某些情况下会导致全表扫描,从而降低查询效率。因此,对于LIKE操作符的优化...
SELECT * FROM 表名 WHERE 名字 LIKE 'abc%'; ``` 在这个例子中,“%”是一个通配符,表示任意数量的字符,包括零个字符。 2. **INSTR函数** INSTR函数可以用来查找一个字符串在另一个字符串中首次出现的位置。...
例如,如果你的模式是`'%_abc%'`,而你希望匹配实际字符串中包含"_%abc%"的部分,你可以使用`'%\_abc%' ESCAPE '\'`来避免`_`被解释为通配符。 在SQL Server的查询中,LIKE语句提供了强大的字符串匹配功能,但同时...
【I like the ABC song PPT课件4】是一个专为英语教学设计的优秀PPT课件,适合教师在课堂上使用,以增强学生对字母和歌曲的兴趣。课件以"I like the ABC song"为主题,旨在教授孩子们学习英语的基础,如字母、单词...
WHERE 姓氏 LIKE '王%'; ``` 此外,为了提高查询效率和数据一致性,可能还需要设计合理的索引和实施约束。例如,电话号码字段可以创建唯一性约束,确保每个号码对应一个唯一的联系人。 在实际开发中,我们通常会...
这篇内容是针对小学二年级学生的英语教学材料,主要聚焦在教授字母"Ii"以及相关的单词和短语。课件的设计旨在通过互动和游戏的方式帮助孩子们掌握字母"Ii"的发音和与其相关的词汇。 首先,我们可以看到课件中包含了...
- **Warm-up**:通过ABC Phonics Chant Song和《An apple a day》歌曲,激发学生的学习兴趣,热身并引入话题。 - **Presentation**:逐个教授新单词,结合歌曲、实物、简笔画和课件,引导学生理解和使用复数形式,...
例如,“[abc]”匹配“a”、“b”或“c”。 * “-”:用来命名字符的一个范围。例如,“[a-z]”匹配任何小写字母,而“[0-9]”匹配任何数字。 * “*”:匹配零个或多个在它前面的东西。例如,“x*”匹配任何...
SELECT * FROM YourTableName WHERE YourColumnName LIKE '%abc%' ``` 这里的'%'是通配符,'%abc%'表示查询包含"abc"的任何记录,无论"abc"出现在字符串的哪个位置。 在ASP.NET中,可以使用ASP.NET Web Forms或者...
例如,“[abc]”匹配“a”、“b”或“c”。 * “*”匹配零个或多个在它前面的东西。例如,“x*”匹配任何数量的“x”字符,“[0-9]*”匹配的任何数量的数字,而“.*”匹配任何数量的任何东西。 正则表达式是...
例如,`'%abc%'`将匹配任何包含"abc"序列的字符串,无论它在字符串中的位置如何。 - `_`代表单个任意字符。例如,`'abc_'`将匹配以"abc"开头,后面跟一个任意字符的字符串。 以下是一个简单的使用LIKE子句的例子: ...
- `SELECT * FROM table_name WHERE column_name LIKE '%abc%'`:查找所有包含“abc”的记录。 - `SELECT * FROM table_name WHERE column_name LIKE 'abc%'`:查找以“abc”开头的所有记录。 - `SELECT * FROM ...
正则表达式使用更丰富的语法,如`.`匹配任何单个字符,`[abc]`匹配“a”、“b”或“c”,`[a-zA-Z]`匹配所有字母,`^`和`$`分别表示字符串的开始和结束,`*`表示前面的元素可以出现零次或多次。 - 例如,`SELECT * ...
"SQL中代替Like语句的另一种写法" 在SQL中, LIKE 语句是一个非常常用的语句,它用于搜索某个模式的字符串。然而,在某些情况下,使用 LIKE 语句可能会出现一些性能问题。因此,本文将介绍 SQL 中代替 LIKE 语句的...
【描述】中的 "thid is wonderful to again see a program like thid jaijsksds asdfg vbnm lkio puy trvted" 虽然存在拼写错误,但我们可以推测用户对这个程序或者内容感到非常兴奋和赞赏。"jaijsksds"看起来像是乱...