一.虽然通过调整SGA组件可以最大限度地减少物理I/O的发生

但是我们在某些活动中还是不可避免的将会产生磁盘I/O。需要注意的是在内存中的I/O活动是逻辑的,在磁盘上的I/O活动是物理的。逻辑I/O比物理I/O快数千倍。

二.产生磁盘I/O的来源:

Database Writer(DBWO)--写Database Buffer Cache中的缓存区到数据库中的数据文件。

Database Writer(DBWO)--写数据到回退段以维护读一致性

用户Server Process--读取数据块到Database Buffer Cache中

Log Writer(LGWR)--从Redo Log Buffer中写事务恢复信息到Online Redo Log上

Archiver(ARC0)--读取重做日志的内容,并写到存档目标上临时的大型排序写盘操作

三.调整物理I/O的2个目标:

适当的SGA大小

尽可能快地执行物理I/O

四.提高磁盘I/O需要调整的数据库物理结构

1.数据文件 2.DBWO 3.单个段数据块 4.排序操作和临时段 5.回退段

五.调整表空间与数据文件

select s.FILE#||'D' "FILE#+TYPE" , d.NAME "DATAFILE",

s.PHYRDS,s.PHYWRTS,s.AVGIOTIM,s.MINIOTIM,s.MAXIOWTM,s.MAXIORTM

from v$filestat s,v$datafile d

where s.FILE#=d.FILE#

union

select s.FILE#||'T' "FILE#+TYPE" , t.NAME "DATAFILE",

s.PHYRDS,s.PHYWRTS,s.AVGIOTIM,s.MINIOTIM,s.MAXIOWTM,s.MAXIORTM

from v$filestat s,v$tempfile t

where s.FILE#=t.FILE#

order by 1;

PHYRDS--该数据文件上发生的物理读次数

PHYWRTS--该数据文件上发生的物理写次数

AVGIOTIM--平均花费的I/O时间

MINIOTIM--花费的最短时间

MAXIOWTM--写操作花费的最长时间

MAXIORTM--读操作花费的最长时间

我们能够做的工作就是 :

不要将非Oracle文件放在与Oracle文件相同的磁盘上,避免引起对磁盘资源的潜在争用!

创建局部管理表空间(LMT Locally Managed Tablespace)

均衡数据文件I/O--不要把数据库的段集中放在某一个表空间,如:system.另外如果可能的话,将高频率的I/O数据文件放在不同的磁盘或者控制器上面

调整init.ora参数的DB_FILE_MULTIBLOCK_READ_COUNT--指定一个用户Server Process在执行全表扫描的时候,读取的最多数据块个数,默认是8

select name,value from v$sysstat

where name='table scans (long tables)'

如果统计数据很大,说明经常执行全表扫描,这样的话增大这个参数是有收获的

六.调整DBW0的性能

DBW0是负责写Database Buffer Cache中的缓存区到数据库中的数据文件。 由于数据文件可能驻留在一个速度比较慢的设备上或者DBW0写脏缓冲区的效率不高,早成了等待事件。

select event,total_waits,average_wait

from v$system_event where event in('buffer busy waits','db file parallel

write','free buffer waits','write complete waits' )

如果发现等待次数过多,可能就需要调整 (1)参数DBWR_IO_SLAVES --启动Database Writer从属进程 默认0 (2)参数DB_WRITER_PROCESSES --启动额外Database Writer进程 与DBWR_IO_SLAVES相比可以DBWO的全部功能 默认1,最大10

七.调整段I/O ORACLE存储体系结构

数据库包含一个或多个表空间 --表空间使用数据文件来存储段 --段由一个或多个范围组成 --范围由连续的ORACLE块组成

ORACLE块由连续的操作系统块组成 :

块 SYSTEM和TEMP表空间使用的是主块,由DB_BLOCK_SIZE参数设定 其他表空间可以使用BLOCKSIZE关键字指定块的大小,不指定就默认为主块的大小

范围.

不要将应用程序的表和索引放在system表空间中。

设置合理的范围大小 通过参数DB_FILE_MULTIBLOCK_READ_COUNT 大范围的缺点是表空间的空间可能被浪费,但是读取I/O的次数就可能会减少。

设置合理的块大小

create table col_cust

(

cust_id varchar2(20),

cust_name varchar2(20)

)

PCTFREE 20 PCTUSED 30

INITTRANS 5

STORAGE (initial 250K

next 250K

pctincrease 0

freelists 1)

TABLESPACE aap1_data;

上面那段SQL中,范围=32块*8KB/块=250K

PCTFREE 20--每个块预留20%的空间用于保存行更新信息

八.调整排序I/O

会导致排序的操作

ORDER BY

GROUP BY

SELECT DISTINCT

UNION

INTERSECT

MINUS

ANALYZE

CREATE INDEX

1.尽量在内存中完成排序 SORT_AREA_SIZE(不推荐更改默认值) ,建议95%以上都在内存中排序

SORT_AREA_RETAINED_SIZE

PGA_AGGREGRATE_TAGET

WORKAREA_SIZE_POLICY

select mem.NAME,mem.VALUE /(disk.VALUE+mem.VALUE) "In-memory Sort Ratio"

from v$sysstat mem,v$sysstat disk

where mem.NAME='sorts (memory)'

and disk.NAME='sorts (disk)'

2.减少或者避免磁盘排序

UNION ALL取代UNION 避免INTERSECT/MINUS/DISTINCT

对ORDER BY和GROUP BY所引用的列尽量使用index

CREATE INDEX时增加NOSORT选项

3.使用临时表空间 使用下面这条语句可以查询一个表空间是临时还是永久的

select tablespace_name,contents from dba_tablespaces

把一个临时表空间指定为所有用户的默认临时表空间

alter database default temporary tablespace temp;

用户默认的临时表空间是SYSTEM

select sess.USERNAME,sql.SQL_TEXT,sort.BLOCKS

from v$session sess,v$sqltext sql,v$sort_usage sort

where sess.SERIAL#=sort.SESSION_NUM

and sort.SQLADDR=sql.ADDRESS

and sort.SQLHASH=sql.HASH_VALUE

and sort.BLOCKS>200;

上述语句可以查询引起大排序的SQL语句,然后可以通过建立索引或者重写语句来消除大排序

九.调整回退段I/O

当用户启动一个DML的事务时,以修改数据的像前版本被缓存在SGA的Database Buffer Cache中。这些缓冲区的副本也被写到一个回退段上。

ORACLE利用回退段(rollback segment)来存储应用程序用户执行DML操作所产生的以修改数据的像前版本。

该回退段被存储在一个表空间中。回退段也叫做撤销段(undo segment).像前版本的目的:

ROLLBACK时恢复原始数据

COMMIT以前,提供其他用户访问原数据,提供以修改数据的读一致性

当实例发生故障时,撤销还未提交的事务

oracle提高io,【转】Oracle性能优化调整--调整磁盘I/O相关推荐

  1. oracle hwm调整语法,Oracle 10g HWM原理及性能优化

    摘  要: HWM(High Water Mark)是表中已经使用过的存储空间与未使用过的存储空间之间的分界线,HWM对全表扫描的性能有非常大的影响.当全表扫描时,Oracle会读取HWM下所有的块, ...

  2. oracle 9i hwm,Oracle 10g HWM原理及性能优化

    摘 要: HWM(High Water Mark)是表中已经使用过的存储空间与未使用过的存储空间之间的分界线,HWM对全表扫描的性能有非常大的影响.当全表扫描时,Oracle会读取HWM下所有的块,即 ...

  3. oracle 触发器性能优化,Oracle设计开发阶段的性能优化策略

    我们都知道提高Oracle数据库的相关系统的实际运行效率,它是整个计算机的实际应用信息系统的高效运行的前提与保证.其实影响Oracle设计开发阶段的相关性能的因素很多,既有软件方面的因素. 也包括数据 ...

  4. Oracle发布更新使数据库性能优化达到75%

    甲骨文公司今天在甲骨文全球技术与应用大会(Oracle OpenWorld)上宣布,为优化Oracle软件和硬件而推出一款快速.现代和可靠的Linux内核--Oracle Unbreakable企业级 ...

  5. IO 密集型服务 性能优化实战记录

    背景 项目背景 Feature 服务作为特征服务,产出特征数据供上游业务使用.服务压力:高峰期 API 模块 10wQPS,计算模块 20wQPS.服务本地缓存机制: 计算模块有本地缓存,且命中率较高 ...

  6. 【ElasticSearch】ElasticSearch在数十亿级别数据下,如何提高查询效率? 性能优化

    1.概述 转载:https://zhuanlan.zhihu.com/p/60458049 这里面主要有个filesystem cache 服务这个想法很好. 面试题 es 在数据量很大的情况下(数十 ...

  7. 12c oracle 修改内存_Oracle12c中性能优化功能增强新特性之重大突破——内存列存储新特性...

    Oracle12c中内存列存储 内存列存储(IM column store) 是Oracle12.1.0.2版本的主要特点.该特点允许列,表,分区和物化视图在内存中以列格式存储,而不是通常的行格式.数 ...

  8. 12c oracle 修改内存_Oracle12c中性能优化amp;功能增强新特性之重大突破——内存列存储新特性...

    内存列存储(IM column store) 是Oracle12.1.0.2版本的主要特点.该特点允许列,表,分区和物化视图在内存中以列格式存储,而不是通常的行格式.数据存在内存中的好处显而易见,而列 ...

  9. oracle update from多表性能优化一例

    这几天测试java内存数据库,和oracle比较时发下一个update from语句很慢,如下: update business_newset fare1_balance_ratio = (selec ...

最新文章

  1. 详解JVM内存管理与垃圾回收机制3 - JVM中对象的内存布局
  2. Flink并行度与Slot的关系
  3. Java中的多线程你只要看这一篇就够了
  4. [你必须知道的css系列]第一回:丰富的利器2:CSS选择符之子选择符、相邻选择符...
  5. 【Android 异步操作】Timer 定时器 ( Timer 与 TimerTask 基本使用 | Timer 定时器常用用法 | Timer 源码分析 )
  6. 培训补坑(day1:最短路two-sat)
  7. 虚拟化(4)_离线克隆与在线克隆
  8. 数学--数论--HDU - 6395 Let us define a sequence as below 分段矩阵快速幂
  9. org.apache.ibatis.builder.BuilderException: Could not find value method on SQL annotation
  10. 数据结构实验之二叉树四:还原二叉树
  11. win10python3.6.3安装_Win10Python3.6安装impyla
  12. ghost还原固态硬盘_固态硬盘到底能不能使用Ghost软件?终于说明白了
  13. win10自动停用打印服务器,雨林木风win10系统添加打印机总是自动关闭打印服务的方法...
  14. VC++6.0下编译xvidcore1.1.0
  15. 常用ADSS光缆的代表结构和主要参数介绍
  16. 基于OpenMV的图像识别之数字识别
  17. 2021高校毕业礼物,竞争太激烈了!
  18. 新手程序员成长之路的五本必读书籍(附资源下载)
  19. 如何用计算机计算幅度,电脑计算器计算css布局
  20. C# Unicode 转换

热门文章

  1. 基于笛卡尔坐标系下的三边定位的研究(TOA方式定位)
  2. android 等待按钮框架,Android 开发 MaterialDialog框架的详解
  3. 三值的排序 Sorting a Three-Valued Sequence
  4. 【NOI2002】贪吃的九头龙
  5. 2021-03-12 控制三大顶会
  6. Thinkphp5.0快速入门笔记(3)
  7. OS之进程管理 --- 死锁
  8. DPM(Deformable Parts Model)--原理(一)
  9. ACdream 1431 Sum vs Product
  10. 【BZOJ2819】Nim 树状数组+LCA