优化原则

1.在select语句中避免使用*

2.使用Truncate清空表

2.1语法

Truncate [table|cluster] shema.[table_name][cluster_name][drop|reuse storage]

  • table_name:要清空的表
  • cluster_name:要清空的簇名
  • drop|reuse storage:表示保留被删除的空间以供该表的新数据使用,默认为drop storage,收回被删除的空间系统。

3.使用ROWID高效删除重复记录

rowid是可以唯一标记记录的物理位置

delete from TMP001 a where rowid not in
(
select max(rowid) from TMP001 b
where a.id=b.id
and a.name=b.name
and a.gender=b.gender
and a.age=b.age
and a.address=b.address
)

4.高效统计表的记录行数

select table_name, t.num_rows, t.last_analyzed  from tabs t WHERE table_name=’TABLE_NAME’;

可能统计的不是很准确,在统计前先在command下面执行EXEC dbms_stats.gather_table_stats('【空间名称】','【tablename】',cascade=>true);刷新表中的num_rows

5.尽量多使用commit

commit所释放的资源:

  • 回滚段上用于恢复数据的信息,撤销表空间也只作短暂的保留
  • 被程序语句获得的锁
  • redo log buffer中的空间
  • Oracle为管理上述资源的花费

6.使用EXISTS替代IN

在子查询中,[NOT]IN子句将执行一个内部的排序与合并,无论哪种情况,[NOT]IN都是最低效的,因为他要对子查询中的表执行一个全表遍历。

7.修改Oracle中SGA的大小

alter system set sga_max_size=1000M scope=spfile;

此处修改SGA的大小为1000M

8.使用合理的索引

8.1监视索引是否被引用

首先建立索引

create index idx_tmp001_n1 on tmp001(id);

监视

以上结果说明,该索引建立还未使用过,那么我们按照ID查询一次在看看结果,先执行查询语句

select * from tmp001 where id=1

再次监视

此时的结果已经变为YES

9.避免全表扫描

以下情况为全表扫描:

  • 所查询的表没有索引
  • 需要返回所有的行
  • 带like并使用%这样的语句就是全表扫描
  • 对索引列使用了函数
  • 带有is null、is not null或!=等子句也会导致全表扫描

【Oracle】性能优化的更多相关文章

  1. 【转载】我眼中的Oracle性能优化

    我眼中的Oracle性能优化 大家对于一个业务系统的运行关心有如下几个方面:功能性.稳定性.效率.安全性.而一个系统的性能有包含了网络性能.应用性能.中间件性能.数据库性能等等. 今天从数据库性能的角 ...

  2. 降低磁盘IO使Oracle性能优化(转)

    文章转自:http://blog.chinaunix.net/uid-26813519-id-3207996.html 硬件方面虽然只占Oracle性能优化的一个方面(另一方面是软件),但是仍不可忽视 ...

  3. 我眼中的 Oracle 性能优化

    恒生技术之眼 作者 林景忠 大家对于一个业务系统的运行关心有如下几个方面:功能性.稳定性.效率.安全性.而一个系统的性能有包含了网络性能.应用性能.中间件性能.数据库性能等等. 今天从数据库性能的角度 ...

  4. oracle性能优化之awr分析

    oracle性能优化之awr分析 作者:bingjava 最近某证券公司系统在业务期间系统运行缓慢,初步排查怀疑是数据库存在性能问题,因此导出了oracle的awr报告进行分析,在此进行记录. 导致系 ...

  5. Oracle性能优化1-总体思路和误区

    最近在看梁敬彬老师关于Oracle性能优化的一些案例,在这里做一些简单的总结 1.COUNT(*)与COUNT(列)哪个更快 drop table t purge; create table t as ...

  6. Oracle 性能优化的基本方法

    Oracle 性能优化的基本方法概述 1)设立合理的性能优化目标. 2)测量并记录当前性能. 3)确定当前Oracle性能瓶颈(Oracle等待什么.哪些SQL语句是该等待事件的成分). 4)把等待事 ...

  7. Oracle性能优化小结

    Oracle性能优化小结 原则一.注意where子句中的连接顺序 Oracle采用自下而上的顺序解析where子句,根据这个原理,表之间的连接必须卸载其他where条件之前,哪些可以滤掉最大数量记录的 ...

  8. oracle 性能优化建议小结

    原则一:注意WHERE子句中的连接顺序: ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHER ...

  9. 浅谈Oracle 性能优化

    基于大型Oracle数据库应用开发已有6个年头了,经历了从最初零数据演变到目前上亿级的数据存储.在这个经历中,遇到各种各样的性能问题及各种性能优化. 在这里主要给大家分享一下数据库性能优化的一些方法和 ...

  10. Oracle性能优化之查询语句通用原则

    作者早期文章 Oracle优化 索引是表的一个概念部分 , 用来提高检索数据的效率, ORACLE 使用了一个复杂的自平衡 B-tree 结构 . 通常 , 通过索引查询数据比全表扫描要快 . 当 O ...

随机推荐

  1. C#遍历系统所安装的打印机,使用WMI方式获取打印机的所有属性

    有网友发消息来询问,C#如何遍历系统已经安装的所有打印机,并获得每个打印机的相关信息,如:端口,名称等等 C#里面,虽然在 System.Drawing.Printing 这个namespace下,提 ...

  2. CSS之BFC、IFC、FFC and GFC

    CSS之BFC.IFC.FFC and GFC 什么是FC? BFC(Block Formatting Contexts) BFC的布局规则: 如何生成BFC: IFC(Inline Formatti ...

  3. 创建新的Cocos2dx 3.0项目并解决一些编译问题

    转载请注明出处:http://blog.csdn.net/cywn_d/article/details/25775019 假设是原来使用cocos2dx 2.x要升级到3.0的项目,可能须要替换coc ...

  4. ldap、additional info: no global superior knowledge

    /usr/local/openldap/bin/ldapadd -x -D 'cn=Manager,dc=duxingyu,dc=com' -W -f init.ldif Enter LDAP Pas ...

  5. SQL_求集合中每天最大时间记录的总和

    --问题求 集合中每天最大时间的总和 表中的数据 列: 用户 分数 时间 A 2 2014-01-01 01:00:00 A 2 2014-01-01 02:00:00 A 2 2014-01-01 ...

  6. Spring jdbcTemplat 写入BLOB数据为空

        近日做平台新闻接口,数据库用的是Oracle10g,项目使用Spring框架,新闻表内有一字段为BLOB类型,可是在写入时遇到了写入后BLOB字段为空,替换了Spring 的jar包无效,跟b ...

  7. 《逆袭大学:传给IT学子的正能量》

    <逆袭大学:传给IT学子的正能量> 基本信息 作者: 贺利坚 丛书名: 图灵原创 出版社:人民邮电出版社 ISBN:9787115347473 上架时间:2014-3-3 出版日期:201 ...

  8. strcat实现

    //将源字符串加const,表明其为输入参数 char*strcat(char*strDest,constchar*strSrc) { //后文returnaddress,故不能放在assert断言之 ...

  9. 【C++ Primer】用于大型程序的工具

    1. 异常处理 异常以类似于将实參传递给函数的方式抛出和捕获.异常可以是可传给非引用实參的随意实參的类型,这意味着必须可以复制该类型的对象. 当抛出一个表达式的时候,被抛出对象的静态编译时类型将决定异 ...

  10. 原创D3D几何实例化的DEMO

    CUBE的几何实例化DEMO 鼠标右键按下并拖动         旋转视角WSAD                         前后左右RF                             ...