@(Oracle)

前面介绍了Oracle的基本参数,从这节开始讲其他的参数,参数从v$parameter中提取

基本参数请看如下链接: http://www.zhaibibei.cn/oralce/oracle-parameter/

如无特殊说明数据库版本为11.2


filesystemio_options

1.png
  1. 参数类型:字符串
  2. 语法: FILESYSTEMIO_OPTIONS = { none | setall | directIO | asynch }
  3. 默认值: 无
  4. 修改需重启实例
  5. 基本参数

该参数用于启用或禁用文件系统的asynchronous I/O 或direct I/O

默认值一般为该平台的最优值

ASYNCH: enable asynchronous I/O on file system files, which has no timing requirement for transmission.

DIRECTIO: enable direct I/O on file system files, which bypasses the buffer cache.

SETALL: enable both asynchronous and direct I/O on file system files.

NONE: disable both asynchronous and direct I/O on file system files.


asynchronous I/O

当synchronous I/O 请求提交后,writing 进程 会在操作完成后才能继续响应请求

而asynchronous I/O,则可以同时接受其他请求


direct I/O

Oracle 本身会将数据缓冲在buffer cache中

操作系统的文件系统(ext3等)也会将数据缓存在它的缓存中

这样就有两部分的缓存了 这时我们可以启用direct I/O

当数据库需要数据的时候,跳过操作系统层面的缓存,直接读取裸设备数据

这样可以减少CPU消耗

direct I/O时会以O_DIRECT标志打开一个文件

如果awr报告中TOP5 等待时间为读相关的(db file sequential read ,db file scattered read )则推荐启用

但前提是这些等待是合理的,即没有对于的全表扫描等


实际截图:

2.png

参考连接

https://docs.oracle.com/cd/E18283_01/server.112/e17110/initparams090.htm

DIRECT I/O

https://oracle-base.com/articles/misc/direct-and-asynchronous-io


下期参数

dnfs_batch_size