想關注我嗎?請點擊圖片上方藍字小麥苗關注即可,關注後您將能夠每日得到最實用的數據庫技術。請將小麥苗公衆號置頂,小麥苗不喜歡被壓着,~O(∩_∩)O~數據庫
榮 做者小麥苗的今日寄語 多寶劍鋒從磨礪出,梅花香自苦寒來。緩存
各位粉絲朋友,從8月13日開始,小麥苗打算花很長很長的一段時間來給你們分享有關本身整理的等待事件的學習筆記,有的內容來自於網絡,你們有什麼問題能夠留言,歡迎交流。微信
今天給你們分享的是等待事件中的User I/O 類等待事件之db file parallel read網絡
等待事件歷史文章●【等待事件】等待事件概述(1)--等待事件的源起和分類ide
●【等待事件】User I/O類 等待事件(2.1)--db file sequential read(數據文件順序讀)
性能
●【等待事件】User I/O類 等待事件(2.2)--db file scattered read(數據文件離散讀)學習
SELECT *fetch
FROM v$event_name優化
WHERE NAME IN ('db file parallel read');url
在V$SESSION_WAIT這個視圖裏面,這個等待事件有三個參數P1、P2、P3,其中P1爲files表明有多少個文件被讀取所請求,P2爲blocks表明總共有多少個BLOCK被請求,P3爲requests表明總共有多少次I/O請求。
db file parallel read物理讀等待事件涉及到的數據塊均是不連續的,同時能夠跨越extent,這點不像db file scattered read。
這是一個很容易引發誤導的等待事件,實際上這個等待事件和並行操做(好比並行查詢,並行DML)沒有關係。這個事件發生在數據庫恢復的時候,當有一些數據塊須要恢復的時候,Oracle會以並行的方式把他們從數據文件中讀入到內存中進行恢復操做。當Oracle從多個數據文件中並行的物理讀取多個BLOCK到內存的不連續緩衝中(多是高速緩存區或者是PGA)的時候可能就會出現這個等待事件。這種並行讀取通常出如今恢復操做中或者是從緩衝中預取數據達到最優化(而不是屢次從單個BLOCK中讀取,buffer prefetch以優化多個單塊讀)。這個事件代表會話正在並行執行多個讀取的需求。注意:在11g以前,這個等待事件發生在數據文件的恢復過程當中,但11g中新增了prefetch的特性,因此也可能致使這個等待事件的產生。
若是在等待時間中這個等待事件佔的比重比較大,能夠按照處理db file sequential read等待事件的方法來處理這個事件。
如果因爲prefetch引發的性能問題,咱們能夠經過添加隱含參數來解決該問題。能夠參考blog:http://blog.itpub.net/26736162/viewspace-2123473
set pagesize 9999
set line 9999
col NAME format a40
col KSPPDESC format a50
col KSPPSTVL format a20
SELECT a.INDX,
a.KSPPINM NAME,
a.KSPPDESC,
b.KSPPSTVL
FROM x$ksppi a,
x$ksppcv b
WHERE a.INDX = b.INDX
and lower(a.KSPPINM) IN ('_db_block_prefetch_quota','_db_block_prefetch_limit','_db_file_noncontig_mblock_read_count');
ALTER SYSTEM SET "_db_block_prefetch_quota"=0 SCOPE=SPFILE SID='*';
ALTER SYSTEM SET "_db_block_prefetch_limit"=0 SCOPE=SPFILE SID='*';
ALTER SYSTEM SET "_db_file_noncontig_mblock_read_count"=0 SCOPE=SPFILE SID='*';
SYS@oraESKDB1> set pagesize 9999
SYS@oraESKDB1> set line 9999
SYS@oraESKDB1> col NAME format a40
SYS@oraESKDB1> col KSPPDESC format a50
SYS@oraESKDB1> col KSPPSTVL format a20
SYS@oraESKDB1> SELECT a.INDX,
2 a.KSPPINM NAME,
3 a.KSPPDESC,
4 b.KSPPSTVL
5 FROM x$ksppi a,
6 x$ksppcv b
7 WHERE a.INDX = b.INDX
8 and lower(a.KSPPINM) IN ('_db_block_prefetch_quota','_db_block_prefetch_limit','_db_file_noncontig_mblock_read_count');
INDX NAME KSPPDESC KSPPSTVL
---------- ---------------------------------------- -------------------------------------------------- --------------------
881 _db_block_prefetch_quota Prefetch quota as a percent of cache size 10
883 _db_block_prefetch_limit Prefetch limit in blocks 0
1156 _db_file_noncontig_mblock_read_count number of noncontiguous db blocks to be prefetched 11
SYS@oraESKDB1> ALTER SYSTEM SET "_db_file_noncontig_mblock_read_count"=0 SCOPE=SPFILE SID='*';
System altered.
SYS@oraESKDB1> ALTER SYSTEM SET "_db_block_prefetch_quota"=0 SCOPE=SPFILE SID='*';
System altered.
SYS@oraESKDB1> ALTER SYSTEM SET "_db_block_prefetch_limit"=0 SCOPE=SPFILE SID='*';
System altered.
SYS@oraESKDB1> ALTER SYSTEM SET "_db_file_noncontig_mblock_read_count"=0 SCOPE=SPFILE SID='*';
● 本文做者:小麥苗,只專一於數據庫的技術,更注重技術的運用
● 本文在itpub(http://blog.itpub.net/26736162)、博客園(http://www.cnblogs.com/lhrbest)和我的微信公衆號(xiaomaimiaolhr)上有同步更新,推薦pdf文件閱讀或博客園地址閱讀
● QQ羣:230161599 微信羣:私聊
● 小麥苗分享的其它資料:http://blog.itpub.net/26736162/viewspace-1624453/
● 聯繫我請加QQ好友(642808185),註明添加原因
●【版權全部,文章容許轉載,但須以連接方式註明源地址,不然追究法律責任】
長按識別二維碼或微信客戶端掃描下邊的二維碼來關注小麥苗的微信公衆號:xiaomaimiaolhr,學習最實用的數據庫技術。
本文分享自微信公衆號 - DB寶(lhrdba)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。