日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle awr 等待事件,3.db file scattered read等待事件

發布時間:2025/5/22 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle awr 等待事件,3.db file scattered read等待事件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

db file scattered read等待事件

原創 2017-07-22 Oracle 宅必備

從今天開始講解awr報告Top 5 Timed Events部分

今天講scattered read等待事件

db file scattered read

物理讀發生在一個用戶需要的數據塊不在SGA,從而將其從磁盤讀取到SGA中

如果此時別的會話需要該數據塊則必須等待這個過程結束,這時就產生了等待

離散讀是物理讀的一種方式,這里的離散指的是讀取數據塊到一塊離散(不連續)的內存區域,而且一般讀取多個數據塊( multi-block read),可能為單個數據庫

如該等待嚴重則說明該數據塊存在嚴重的爭用情況

每次讀取的塊數由DB_FILE_MULTIBLOCK_READ_COUNT參數控制

這點不同于sequential read,可參考下一篇關于sequential read 的文章

下圖為各種讀取方式的比較

何時會發生

多數據塊讀(multi-block read)是由SQL語句引起的(用戶發出或者遞歸調用)

一般發生在以下情況:

全表掃描( full table scans )

索引快速全掃描( index fast full scans)

如何處理

由于物理讀是非常正常的,出現這個等待事件不意味著數據庫出現性能問題

但是如果我們在TOP 5 Wait Event中看到其處于非常前的位置(第二甚至第一)時就需要引起我們的注意了,OLTP系統中應避免此等待

特別需要關注Avg Waits 參數,最好小于10ms,這里可采用如下方法進行解決

將數據文件放在高速磁盤中,提高讀取性能

將數據文件放在LUN(即一些存儲設備)中,可確保數據塊分散在足夠多的磁盤中

在優化磁盤的同時,我們還需要注意應用程序的SQL語句問題,因為一般這種等待都是SQL語句造成的,我們需要找出相應的SQL語句

通過執行計劃進行優化判斷全表掃描或者索引全掃描是否合理,是否使用了合適的驅動表,以需要達到減少物理讀和邏輯讀的目的

執行計劃中 HASH JOIN和SORT MERGE動作(operation)會導致scattered read

可增加 DB_FILE_MULTIBLOCK_READ_COUNT參數的值來減少IO次數

調整HASH_AREA_SIZE 和OPTIMIZER_INDEX_COST_ADJ 參數的值也可用來優化scattered read

保證統計信息的及時性

如下是一些常用的診斷方式,通過下面方式定位到具體的會話,在通過sql_id或hash_value找出具體的語句用于優化

1. 查看當前正在等待的會話

我們可以查看v$session_wait 視圖的TIME_WAITED欄位來定位當前哪個會話等待 scattered read過長時間(實時)

select * from v$session_Wait where event = 'db file scattered read'

P1代表File ID,可通過dba_data_File視圖的FILE_ID字段看出是哪個數據文件

P2代表 First block,即該塊在數據庫上開始的位置

P3代表塊數,該值的取值范圍為1-DB_FILE_MULTIBLOCK_READ_COUNT的值

我們可以通過P1 P2參數得出對象的名稱和類型

select

segment_name,

segment_type

from

dba_extents

where

file_id = 15

and

1106397 between

block_id and (block_id + blocks - 1);

2.查看從實例啟動以來等待的會話

使用 v$session_event視圖來定位哪個會話等待 scattered read過長時間(非實時)

也可使用v$system_event視圖查看系統整體的等待事件

SELECT sid, total_waits, time_waited

FROM v$session_event

WHERE event='db file scattered read'

and total_waits>0

ORDER BY 3 desc ,2

注意由于SID是可以復用的,這樣查出來的有可能有問題

比如查看SID為587的會話對應的語句也有可能是上個SQL語句導致的scattered read等待,這點需要注意

查看高物理讀的數據文件

我們可以通過awr報告中的 Tablespace IO Stats 和File IO Stats 區域來定位最多IO操作的表空間和數據文件,如果可以請將其放置在高速的磁盤中(SSD)

查看高物理讀的SQL語句

同樣可以查看v$sql中高物理讀的語句以及awr SQL ordered by Reads區域

參考資料

總結

以上是生活随笔為你收集整理的oracle awr 等待事件,3.db file scattered read等待事件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。