Oracle 查询优化
在大表中,进行模糊查询,一般情况下是用LIKE'%%',但是这个东西走的是全表扫描,如果在数据量非常大的情况下,效率特别慢,因此,尝试用ORACLE函数INSTR()来解决。
实验步骤如下:
首先构造一张百万行的表。
SQL> insert into emp2 select * from emp2;
1032192 rows inserted
如上所示,构造完成
接下来连续运用多个LIKE查询来模糊匹配
SQL> select * from emp2 where job like '%RE%' and ename like '%A%' and mgr like '%3%';
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
Executed in 1.859 seconds
如上所示,LIKE查询一次,就走一次全表扫描,效率非常慢
同样的效果,现在来换做INSTR函数来执行
SQL> select * from emp where instr(job,'RE')>0 and instr(ename,'A')>0 and instr(mgr,'3')>0;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
Executed in 0.063 seconds
看到了吧,,时间上的差异很明显,INSTR在一瞬间执行完成,因为这个是查找的字段,而非走全表扫描
看来,oracle 内部函数效率还是高些。
因此,大家以后碰到同样的问题,除了全文检索外,这个也是个好方式
注意:
select id, name from users where instr(id, '101') > 0;
等价于
select id, name from users where id like '%101%'
如:
用 like 查询时,索引会失效,like 是全文查询 ,不建议使用,可用 instr 代替,对单个字段查询,
select * from xb_port p where 1=1 and instr(p.assemblename,'大通') >0
and instr(p.assemblename,'铝厂') >0
and instr(p.assemblename,'05') >0 ;
二,也以用
Oracle表分区
见:http://love-flying-snow.iteye.com/blog/573303
http://www.cnblogs.com/advocate/archive/2010/09/03/1816628.html
三:对单个大表的优化,百万以上:
oracle 10g 以上 也提供了 全文检索,和 lucene相似 。
见:
http://www.iteye.com/topic/1118055
http://yangtingkun.itpub.net/post/468/246823 这个里面有详细Oracle 的全文检索,非常好,对单个大表
百万以上,很有用 。
相关推荐
《Oracle查询优化改写技巧与案例》不讲具体语法,只是以案例的形式介绍各种查询语句的用法。第1~4章是基础部分,讲述了常用的各种基础语句,以及常见的错误和正确语句的写法。这部分的内容应熟练掌握,因为日常查询...
《Oracle查询优化改写技巧与案例》不讲具体语法,只是以案例的形式介绍各种查询语句的用法。第1~4章是基础部分,讲述了常用的各种基础语句,以及常见的错误和正确语句的写法。这部分的内容应熟练掌握,因为日常查询...
根据提供的文件信息,本文将对《Oracle查询优化改写技巧与案例》这一主题进行详细的解析,涵盖Oracle查询优化的基本概念、重要性、改写技巧及其实际应用案例。 ### 一、Oracle查询优化概述 #### 1.1 查询优化定义 ...
Oracle查询优化是数据库管理中的重要环节,它直接关系到数据库的性能和响应速度。针对Oracle数据库的查询优化,本文件提供了丰富的技巧和案例分析,以帮助读者深入理解优化原理,并能在实际工作中学以致用。 首先,...
Oracle查询优化是数据库管理中的关键技能,尤其是在处理大型数据集时,有效的查询优化能显著提升系统性能,降低资源消耗。本书“Oracle查询优化改写-技巧与案例2.0”聚焦于这一主题,旨在为数据库管理员(DBA)和开发...
《Oracle查询优化改写技巧与案例》不讲具体语法,只是以案例的形式介绍各种查询语句的用法。第1~4章是基础部分,讲述了常用的各种基础语句,以及常见的错误和正确语句的写法。这部分的内容应熟练掌握,因为日常查询...
其次,索引是优化查询的常用手段。Oracle支持B树索引、位图索引、函数索引等多种类型。选择合适的索引类型能显著提高查询速度。例如,对于选择性较低的列,位图索引可能更有效;而对于频繁更新的列,B树索引可能是更...
《Oracle查询优化改写技巧与案例》不讲具体语法,只是以案例的形式介绍各种查询语句的用法。第1~4章是基础部分,讲述了常用的各种基础语句,以及常见的错误和正确语句的写法。这部分的内容应熟练掌握,因为日常查询...
### Oracle 查询优化详解 在数据库管理系统中,Oracle是一款非常成熟且功能强大的关系型数据库系统,广泛应用于企业级应用。为了提高系统的性能与响应速度,进行有效的Oracle查询优化至关重要。本文将从多个方面...
### Oracle查询优化改写技巧与案例 在数据库管理和开发领域,Oracle因其强大的功能、灵活性以及对大型企业级应用的支持而受到广泛青睐。然而,在实际应用过程中,如何有效地进行查询优化,提升系统的整体性能,成为...
在Oracle数据库管理中,查询优化是一项至关重要的任务,它直接影响到系统的性能和效率。Oracle查询优化改写技巧与案例涉及到如何通过改进SQL语句、利用索引、调整表设计和数据库参数来提升查询速度,降低资源消耗。...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其性能优化是DBA(数据库管理员)和开发人员的关键技能之一。查询优化是性能优化的...优化查询不仅是提高系统响应时间的关键,也是保障业务平稳运行的基础。
本资料《Oracle查询优化改写技巧与案例》将深入探讨如何提升Oracle查询性能,通过实际案例来解析优化策略。 1. **执行计划分析** - SQL语句的执行计划是数据库执行SQL的详细步骤,理解执行计划有助于找到性能瓶颈...
优化查询通常从编写高效的SQL语句开始,包括选择合适的索引、避免全表扫描、减少子查询以及合理使用JOIN操作。在Oracle中,理解执行计划至关重要,因为它是Oracle解析和执行SQL语句的方式。通过使用EXPLAIN PLAN或...
Oracle查询优化是数据库管理中的关键...以上是Oracle查询优化的一些核心要点,实践中还需要根据具体情况进行深入分析和测试,不断优化查询,以实现数据库的最佳性能。不断学习和实践是成为Oracle查询优化大师的关键。
在Oracle数据库管理中,查询优化是一项至关重要的任务,它直接影响到数据库系统的性能和效率。"Oracle查询优化改写"是一个专业领域,旨在通过调整SQL语句的结构和逻辑,提高查询速度,降低资源消耗,从而提升整体...