1 Oracle 调优:
1 在数据量比较大的表上建立相关索引 ----create index abc_b_index on abc ( b ) ;
2 sql 语句的调优:
1 > where 语句查询数据的时候将数据量大的条件放在 where 最后 oracle 查询自上向下 where name='john' and sal>1000 交换后就会影响效率
2 > select 语句避免使用 *
3> 减少访问数据库的次数
select ename ,job, sal from emp where empno=34; select ename ,job,sal from emp where=35;
->select ename,job,sal from emp where empno=34 or empno=35;
4> 采用 decode 函数 :decode( 条件 , 值 1, 翻译值 1, 值 2, 翻译值 2……, 缺省值 )
if( 条件 = 值 1){
return 翻译值 1;}else if( 条件 = 值 2){
return 值 2}else{
return 缺省值 }
Select count(*),sum(sal) from emp where ename='smith' and deptno=20;
Select count(*),sum(sal) from emp where ename='smith' and deptno=10;
->select count(decode(deptno,10,'x',null)) d10_count,
count(decode(deptno,20,'x',null)) d20_count,
sum(decode(deptno,10,sal,null)) d10_sum,
sum(decode(deptno,20,sal,null)) d20_sum,
from emp where ename='smith'
5> 删除重复记录
oracle 中在查询的结果集中没条数据都有一个 rowid 是唯一的,及时所有数据字段内容都相同 rowid 也不会相同只要找到最大的 rowid 就能删除全
部重复数据
方法一 -> 创建一个相同备份表 create table table_test_temp as select * from tbl_test;
-> 在原有表中加记录 insert into tbl_test select * from tbl_test;
-> 查询重复记录信息 select id,name,pid ,count(*) from tbl_test group by id,name ,pid having count(*)>1
-> 删除重复记录 delete from tbl_test_temp x where x.rowid <(select max(rowid) from tbl_test_temp e
where x.id=e.id)
方法二 -> 临时表保存不重复数据 create table temp as select distinct * from tbl_test_temp
-> 丢弃原来的表 drop table tbl_test_temp;
-> 创建原来的表 create table tbl_test_temp as select * from temp;
-> 丢弃临时表 drop table temp
6> truncate 代替 Delete
当用 delete 删除记录的时候,如果没有执行 commit 提交事务,回滚段( rollback segments )可以保存 delete 的数据
oracle 可以恢复到 delete 之前的状态,运用 truncate 时,回滚段不再放任何可以被恢复的数据 当执行命令是立即彻底
删除,占很少的资源
7> 尽量多用 commit
commit 可以释放资源 包括贵滚段恢复数据的空间 ;被程序语句获得的锁; redo log buffer 中的空间
8> count(*) 要比 count(1) 快
9> where 子句代替 having 子句 能减少 having 的开销 having 是在 groupby 的基础上进行查询的
10> 在子查询语句中尽量减少对表的查询
select * from emp where deptno in(select deptno form dept where loc like 'new york' ) or deptno in (select deptno
from dept where dname like 'sales')
select * from emp where deptno in (select deptno from dept where loc like 'newyork' or dname like 'sales')
11> Exist 和 in(not exist 和 not in)
in 是把外表和那表作 hash join ,而 exists 是对外表作 loop ,每次 loop 再对那表进行查询。这样的话, in 适合内外表都很大的情况, exists 适合外表结果集很小的情况。 in 是把外表和那表作 hash join ,而 exists 是对外表作 loop ,每次 loop 再对那表进行查询。
如: select * from emp where deptno in (select deptno from dept)
(或者) select * from emp where exists(select 'x' from dept where dept.deptno=emp.deptno)
分析如下:
Select * from T1 where x in ( select y from T2 )
执行的过程相当于 :
select * from t1, ( select distinct y from t2 ) t2
where t1.x = t2.y;
select * from t1 where exists ( select null from t2 where y = x )
执行的过程相当于 :
for x in ( select * from t1 )
loop
if ( exists ( select null from t2 where y = x.x )
then
OUTPUT THE RECORD
end if
end loop
表 T1 不可避免的要被完全扫描一遍
分享到:
相关推荐
本压缩包“oracle调优工具.rar”提供了一系列的资源,帮助用户理解和实践Oracle数据库调优。 首先,"lab128.cnt"可能是一个实验或教程的配置文件,它可能包含了一系列的调优步骤和练习,帮助用户通过实际操作来学习...
以下是对标题"ORACLE调优文档总结"和描述中所述知识点的详细说明: 1. **数据库参数设置**: Oracle数据库的性能很大程度上取决于其配置参数。例如,`SGA (System Global Area)` 包含了共享池、数据缓冲区高速缓存...
Oracle 调优总结 Oracle 调优是数据库管理员和开发人员日常工作中的一个关键部分。只有当数据库的性能达到最佳状态时,才能确保业务的顺利运行。下面总结了 Oracle 调优的一些关键点: 一、了解表结构和索引情况 ...
开Oracle调优鹰眼,深入理解AWR性能报告2.part1
这个“Oracle调优PDF文档”包含了由武汉支点、大唐集团和甲骨文中国在2012年11月9日共同分享的专业知识。在武汉光谷乐华商务大厦的活动中,专家们探讨了如何优化Oracle数据库性能,以提高系统效率和响应速度。 首先...
Linux内核参数调整及ORACLE调优参数
Oracle 调优实战 Oracle 调优实战是一份详细的 Oracle 数据库性能调整指南,涵盖了从服务器运行状况分析到 SQL 语句优化的多个方面。本文档主要分为六大部分:服务器运行状况分析、必备工具、性能调整、TOPSQL 分析...
开Oracle调优鹰眼,深入理解AWR性能报告1.part3
### RHEL官方Oracle调优手册知识点详述 #### 一、引言 《RHEL官方Oracle调优手册》是一份由Red Hat公司发布的官方文档,旨在为运行在Red Hat Enterprise Linux (RHEL)上的Oracle数据库提供性能调优指导。这份手册...
Oracle调优是一个涉及多方面的复杂任务,旨在优化数据库性能,以满足业务需求并提升系统效率。在Oracle调优中,有五个主要的方面需要关注,包括外部调整、Row re-sequencing、Oracle SQL调整、Oracle排序调整以及...
以下是一些针对Oracle调优的关键点,特别是关于Shared Pool的优化,这部分在《Oracle 调优简要手册》中被重点关注。 1. **Shared Pool Tuning**: - **Shared Pool** 是Oracle SGA(System Global Area)的一部分...
### Oracle调优实战执行计划详解 #### 一、执行计划的重要性 执行计划是Oracle数据库引擎在执行SQL语句时所采用的一系列策略和技术的集合,它决定了如何从表或索引中检索数据、如何处理这些数据,以及如何将它们...
Oracle调优是一门专业性强的技术,旨在通过一系列手段优化Oracle数据库的性能,确保其高效稳定地运行。Maclean Liu技术分享的“Oracle调优鹰眼”系列讲座是深入分析和讲解Oracle数据库调优技巧的讲座。本次分享的第...
### Oracle调优实战指南 #### 一、理解Oracle调优的重要性 在数据库管理与应用开发领域,Oracle数据库因其强大的功能和广泛的应用而受到青睐。然而,随着数据量的增长和技术复杂性的提升,如何确保Oracle数据库的...
在进行Oracle调优时,首先需要理解调优的目标和责任分工。系统调整的主要参与者包括应用设计人员、应用开发人员、数据库管理员(DBA)以及硬件/软件管理人员。每个角色都有其独特的职责,例如: 1. 应用设计人员需...
本文将探讨DBA在Oracle调优过程中应遵循的基本原则,包括外部调整、行重排序、SQL调整、排序优化以及竞争调整。 首先,**外部调整**涉及到对运行Oracle数据库的服务器进行优化。这包括对CPU、内存和网络资源的评估...
文档为oracle调优的STA无脑命令,直接安装命令贴到sqlplus里面就好,sql_id号从awr报告里面获得,想调优的语句找到sql_id,替换到文档里面的sql_id位置,最后无脑贴进去就可以使用STA调优助手了。
本文主要探讨了几个Oracle调优的核心原则,包括外部调整、行重排序、SQL调整、排序优化以及竞争调整。 首先,外部调整关注的是数据库运行的硬件和操作系统环境。CPU资源对数据库性能至关重要,当查询需求超出服务器...
本文将详细介绍Oracle调优过程中应当遵循的关键原则,包括SQL语句优化、服务器配置调整等方面。 #### 一、SQL语句优化 **1.1 Row Re-Sequencing与降低I/O** Row re-sequencing是指当数据行在磁盘上存储的物理顺序...