db file sequential read及优化

简介: db file sequential read:直接路径读; 官方说明如下:This event signifies that the user process is reading a buffer into the SGA buffer cach...

db file sequential read:直接路径读;

 

官方说明如下:

This event signifies that the user process is reading a buffer into the SGA buffer cache and is waiting for a physical I/O call to return. A sequential read is a single-block read.

Single block I/Os are usually the result of using indexes. Rarely, full table scan calls could get truncated to a single block call because of extent boundaries, or buffers present in the buffer cache. These waits would also show up as db file sequential read.

Check the following V$SESSION_WAIT parameter columns:

?P1: The absolute file number

?P2: The block being read

?P3: The number of blocks (should be 1)

 

解释:ORACLE进程需要访问block不能从SGA中获取的时候,因此oracle进程会等待block从I/O读取到SGA;

一个顺序读是一个单块读,单块I/O一般来自索引读的结果;

db file sequential read等待事件有3个参数:

?P1: The absolute file number             文件号

?P2: The block being read                first block#     

?P3: The number of blocks (should be 1)       block数量

db file sequential read等待时间是由于执行对索引,回滚(undo)段,和表(当借助rowid来访问),控制文件和数据文件头的单块读操作SQL语句(用户和递归)引起的。对于这些对象的物理I/O请求是很正常的,因此db file sequential read等待的存在不是一定意味库或应用出错了。如果会话在这事件上花了好长事件,它可能也不是一个糟糕的事情。相反,如果会话花了大量时间在equeue或latch free上,那么一定是有问题。

 

问题:AWR报告中的系统的等待事件中的db file sequential read是否合理?

根据awr报告中的以下重要参数进行解读,以11G的awr报告为例子:

说明:db file sequential read是指sga中找不到相应的数据,所以跟buffer hit有很大的关系,当buffer hit命中率太低了,相应的db file sequential read就会高,一般buffer hit保持着95%以上;

 

查看这个报告的db file sequential read的总时间和平均时间;

 

Foreground Wait Events也会统计db file sequential read所花费的时间和平均时间

 

根据SQL User I/O等待时间,查看是否有调优的空间;

 

db file sequential read的优化方法:

  1. 从读取开始,增加SGA中buffer cache的大小,避免每次都从硬盘中去读数;
  2. 优化sql语句,减少不必要的块读取;

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

本文作者:JOHN

ORACLE技术博客:ORACLE 猎人笔记               数据库技术群:367875324 (请备注ORACLE管理 )  

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

相关文章
|
iOS开发
Xcode报错解决方法:ld: symbol(s) not found for architecture arm64
Xcode报错解决方法:ld: symbol(s) not found for architecture arm64
3584 0
|
Kubernetes 数据库 容器
k8s快速部署xxl-job
k8s快速部署xxl-job
1251 3
|
消息中间件 Java Kafka
SpringBoot中使用异步方法优化Service逻辑,提高接口响应速度
异步方法适用于逻辑与逻辑之间可以相互分割互不影响的业务中, 如生成验证码和发送验证码组成的业务, 其实无需等到真正发送成功验证码才对客户端进行响应, 可以让短信发送这一耗时操作转为异步执行, 解耦耗时操作和核心业务;
|
SQL 关系型数据库 MySQL
一文搞懂数据库中的“锁”(图文详解)
数据库锁机制包括全局锁、表级锁和行级锁,用于管理并发访问数据时的一致性和有效性。全局锁锁定整个数据库实例,确保数据备份时的一致性,但可能导致长时间业务停摆。表级锁分为读锁和写锁,读锁允许多个并发读,写锁阻止其他读写。元数据锁(MDL)自动控制,防止DML和DDL冲突。行级锁是最细粒度的锁,分共享锁(读)和排他锁(写),防止行级别的并发冲突。InnoDB还使用意向锁和间隙锁/临键锁防止幻读,提高并发性能。
2866 2
一文搞懂数据库中的“锁”(图文详解)
|
Java
java语言基础
java语言基础
1474 0
|
SQL 分布式计算 MaxCompute
一次性查询一张表所有字段的空值率
一次性查询一张表所有字段的空值率
2335 2
计算机网络学习8:封装成帧、差错检测
接收方的数据层如何从物理层交付的比特流中提取出一个个的帧呢? 帧头和帧尾的作用之一就是 帧定界。
计算机网络学习8:封装成帧、差错检测
|
存储 人工智能 供应链
阿里云发布飞天智算平台,铸就数字经济云服务底座
数字经济蝶变需要强大算力支撑。
1072 0
阿里云发布飞天智算平台,铸就数字经济云服务底座
|
前端开发 Java 关系型数据库
基于Springboot开发实现二手交易商城
本项目基于Springboot开发实现,主要实现了一个二手交易的商城系统,用户注册后可以实现在线售卖二手物品的功能,管理员主要实现对一些基本数据的管理功能。普通用户的主要功能有:注册登陆、发布商品信息、商品收藏管理、售出记录管理、个人资料管理、前端信息查看展示、全文检索、公告新闻查看等。管理员主要实现的功能有:用户管理、公告管理、商品管理、销售分析等功能。...
224 0
基于Springboot开发实现二手交易商城