国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
db file scattered read 等待事件 | dbtan 談DB
本文鏈接地址: http://www.dbtan.com/2010/04/db-file-scattered-read.html
db file scattered read 等待事件:

我們經(jīng)常會見到db file scattered read等待事件,在生產(chǎn)環(huán)境中,這個等待事件可能更為常見。這個事件表明用戶進程正在讀數(shù)據(jù)到Buffer Cache中,等待直到I/O調(diào)用返回。db file scattered read發(fā)出離散讀,將存儲上連接的數(shù)據(jù)塊離散的讀入到多個不連續(xù)的內(nèi)存位置。Scattered Read通常是多塊讀,在Full Table Scan或Fast Full Scan等訪問方式下使用。

Scattered Read代表Full Scan,當執(zhí)行Full Scan讀取數(shù)據(jù)到Buffer Cache時,通常連續(xù)的數(shù)據(jù)在內(nèi)存中的存儲位置并不連續(xù),所以這個等待被命名為Scattered Read(離散讀)。每次多塊讀讀取的數(shù)據(jù)塊數(shù)量受初始化參數(shù)DB_FILE_MULTIBLOCK_READ_COUNT限制。下圖簡要說明了Scattered Read的數(shù)據(jù)讀取方式。

從v$event_name視圖可以看到,該等待有3個參數(shù),分別代表文件號、起始數(shù)據(jù)塊號、數(shù)據(jù)塊的數(shù)量:

sys@CCDB> select event#,name,parameter1,parameter2,parameter3
  2  from v$event_name
  3  where name = 'db file scattered read';
    EVENT# NAME                           PARAMETER1   PARAMETER2   PARAMETER3
---------- ------------------------------ ------------ ------------ ------------
       132 db file scattered read         file#        block#       blocks

數(shù)據(jù)文件號、起始數(shù)據(jù)號加上數(shù)據(jù)塊的數(shù)量,通過這些信息可以知道Oracle Session正在等待的對象文件等信息。該等待可能和全表掃描(Full Table Scan)或者快速全索引掃描(Index Fast Full Scan)的連續(xù)讀取相關(guān),根據(jù)經(jīng)驗,通常大量的db file scattered read等待可能意味著應(yīng)用問題或者索引缺失。

在實際環(huán)境的診斷過程中,可以通過v$session_wait視圖發(fā)現(xiàn)session的等待,再結(jié)合其他視圖找到存在問題的SQL等根本原因,從而從根本上解決問題。

當這個等待事件比較顯著時,用戶也可以結(jié)合v$session_longops動態(tài)性能視圖來進行診斷,該視圖中記錄了長時間(運行時間超過6秒的)運行的事務(wù),可能很多是全表掃描操作(不管怎樣,這部分信息都是值得我們注意的)。

從Oracle 9i開始,Oracle新增加了一個視圖v$sql_plan用于記錄當前系統(tǒng)Library Cache中SQL語句的執(zhí)行計劃,可以通過這個視圖找到存在問題的SQL語句。

可以過程v$sql_plan和v$sqltext聯(lián)合,獲得這些查詢的SQL語句,查找全表掃描的SQL語句可以參考如下語句:

select sql_text
from v$sqltext t,v$sql_plan p
where t.hash_value = p.hash_value
  and p.operation = 'TABLE ACCESS'
  and p.options = 'FULL'
order by p.hash_value,t.piece;

查找Fast Full Index掃描的SQL語句可以參考如下語句:

select sql_text
from v$sqltext t, v$sql_plan p
where t.hash_value = p.hash_value
  and p.operation = 'INDEX'
  and p.options = 'FULL SCAN'
order by p.hash_value, t.piece;

這些信息對于發(fā)現(xiàn)數(shù)據(jù)庫問題,優(yōu)化數(shù)據(jù)庫性能具有極強的指導(dǎo)意義。

在Oracle 10g中,Oracle對等待事件進行了分類,db file scattered read事件被歸入User I/O一類

sys@CCDB> select name,parameter1 p1,parameter2 p2,parameter3 p3,
  2  wait_class_id,wait_class#,wait_class                 
  3  from v$event_name                                    
  4  where name = 'db file scattered read';
NAME                      P1         P2         P3         WAIT_CLASS_ID WAIT_CLASS# WAIT_CLASS
------------------------- ---------- ---------- ---------- ------------- ----------- ------------
db file scattered read    file#      block#     blocks        1740759767           8 User I/O

完成對等待事件的分類之后,Oracle 10g的ADDM可以很容易地通過故障分析定位到問題所在,幫助用戶快速發(fā)現(xiàn)數(shù)據(jù)庫的瓶頸及瓶頸的根源,這就是Oracle的ADDM專家系統(tǒng)的設(shè)計思想。

通過下圖可以直觀清晰地看到這個等待模型和ADDM結(jié)合實現(xiàn)的Oracle專家診斷系統(tǒng)。

- The End -

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Oracle中捕獲問題SQL解決CPU過渡消耗
Oracle IO問題解析(5)[www.HelloDBA.com]
Statspack之十二-db file scattered read-DB文件分散讀取
查詢oracle的所有parameter參數(shù)
Oracle案例:index range scan真的不會多塊讀嗎?
深入淺出Oracle學(xué)習(xí)筆記(3)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服