IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當前所在位置:首頁數(shù)據(jù)庫Oracle → ORACLE等待事件監(jiān)控

ORACLE等待事件監(jiān)控

時間:2015/6/28來源:IT貓撲網(wǎng)作者:網(wǎng)管聯(lián)盟我要評論(0)

  監(jiān)控oracle的等待事件

  select event,

  sum(decode(wait_Time, 0, 0, 1)) "Prev",

  sum(decode(wait_Time, 0, 1, 0)) "Curr",

  count(*) "Tot"

  from v$session_Wait

  group by event

  order by 4;

  1 等待事件概述

  Oracle的等待事件是衡量oracle運行狀況的重要依據(jù)及指標.

  等待事件的概念是在Oracle7.0.1.2中引入的,大致有100個等待事件。在Oracle 8.0中這個數(shù)目增加到了大約150個,在Oracle8i中大約有200個事件,在Oracle9i中大約有360個等待事件。

  主要有兩種類別的等待事件,即空閑(idle)等待事件和非空閑(non-idle)等待事件。

  空閑等待事件是指Oracle正等待某種工作,比如用sqlplus登錄之后,但沒有進一步發(fā)出任何命令,此時該session就處于SQL*Net message from/to client等待事件狀態(tài),等待用戶發(fā)出命令,任何的在診斷和優(yōu)化數(shù)據(jù)庫的時候,我們不用過多注意這部分事件。非空閑等待事件專門針對Oracle的活動,指數(shù)據(jù)庫任務(wù)或應(yīng)用運行過程中發(fā)生的等待,這些等待事件是我們在調(diào)整數(shù)據(jù)庫的時候應(yīng)該關(guān)注與研究的。

  2  oracle等待事件類型

  每一個等待事件都屬于某一類, 下面給出了每一類等待事件的描述.

  管理類: administrative

  類等待事件是由于DBA的管理命令引起的,這些命令要求用戶處于等待狀態(tài),比如,重建索引。

  應(yīng)用程序類:

  此類等待事件是由于用戶應(yīng)用程序的代碼引起的(比如:鎖等待).

  群集類:Cluster

  此類等待事件和真正應(yīng)用群集RAC的資源有關(guān)。(比如:gc cr block busy等待事件).

  提交確認類:Commit

  此類等待事件只包含一種等待事件--在執(zhí)行了一個commit命令后,等待一個重做日志寫確認(也就是log file sync).

  并發(fā)類:Concurrency

  此類等待事件是由內(nèi)部數(shù)據(jù)庫資源引起的,比如閂鎖。

  配置類:Configuration

  此類等待事件是由數(shù)據(jù)庫或?qū)嵗牟划斉渲迷斐傻,比如,重做日志文件尺寸太小,共享池的大小等?/p>

  空閑類:Idle

  此類等待事件意味著會話不活躍,等待工作。比如,sql * net messages from client。

  網(wǎng)絡(luò)類:Network

  和網(wǎng)絡(luò)環(huán)境相關(guān)的一些等待事件,比如sql* net more data to dblink。

  Other

  此類等待事件通常比較少見。

  調(diào)度類:Scheduler

  Resource Manager related waits (for example, 'resmgr: become active')

  系統(tǒng)I/O類:System I/O

  此類等待事件通過是由后臺進程的I/O操作引起的,比如DBWR等待,db file paralle write。

  用戶I/O類:User I/O

  此類等待事件通常是由用戶I/O操作引起的,比如db file sequential read。

  3 等待事件詳細描述

  1, db file scattered read (DB文件分散讀取)

  這種情況通常與全表掃描相關(guān). 當數(shù)據(jù)庫進行全表掃描時, 基于性能的考慮, 數(shù)據(jù)會分散(scattered)讀入buffer cache. 如果這個等待事件比較顯著, 可能考慮查看對應(yīng)的表有沒有創(chuàng)建合適的索引.

  然而這個等待事件并不一定就意味著性能低下, 在某些條件下oracle會主動使用全表掃描來替換索引掃描以提高性能, 這和訪問的數(shù)據(jù)量有關(guān), 在CBO下oracle會進行更為智能的選擇, RBO下oracle更傾向于使用索引.

  因為全表掃描到內(nèi)存的數(shù)據(jù)塊被置于LRU鏈表的冷端, 所以這些數(shù)據(jù)塊將可能在較短時間內(nèi)被置換出物理內(nèi)存, 為了避免反復(fù)物理IO, 對頻繁訪問的較小的數(shù)據(jù)表,可以選擇把他們cache到內(nèi)存中.

  當這個等待時間比較顯著時, 可以結(jié)合v$session_longops動態(tài)性能視圖來進行診斷, 該視圖中記錄了長時間(運行時間超過6秒)運行的事務(wù), 可能很多是全表掃描操作.

  Column

  Datatype

  Description

  SID

  NUMBER

  Session identifier

  SERIAL#

  NUMBER

  Session serial number

  OPNAME

  VARCHAR2(64)

  Brief description of the operation

  TARGET

  VARCHAR2(64)

  The object on which the operation is carried out

  TARGET_DESC

  VARCHAR2(32)

  Description of the target

  SOFAR

  NUMBER

  The units of work done so far

  TOTALWORK

  NUMBER

  The total units of work

  UNITS

  VARCHAR2(32)

  The units of measurement

  START_TIME

  DATE

  The starting time of operation

  LAST_UPDATE_TIME

  DATE

  Time when statistics last updated

  TIME_REMAINING

  NUMBER

  Estimate (in seconds) of time remaining for the operation to complete

  ELAPSED_SECONDS

  NUMBER

  The number of elapsed seconds from the start of operations

  CONTEXT

  NUMBER

  Context

  MESSAGE

  VARCHAR2(512)

  Statistics summary message

  USERNAME

  VARCHAR2(30)

  User ID of the user performing the operation

  SQL_ADDRESS

  RAW(4)

  Used with the value of the SQL_HASH_VALUE column to identify the SQL statement associated with the operation

  SQL_HASH_VALUE

  NUMER

  Used with the value of the SQL_ADDRESS column to identify the SQL statement associated with the operation

  QCSID

  NUMBER

  Session identifier of the parallel coordinator

#p#副標題#e#

  2, db file sequential read(DB 文件順序讀取)

  這一事件通常顯示與單個數(shù)據(jù)塊相關(guān)的讀取操作, 比如對索引塊的讀取. 如果這個等待事件比較顯著, 可能表示在多表連接中, 表的鏈接順序存在問題, 可能沒有正確的使用驅(qū)動表; 或者可能說明不加選擇地進行索引.

  3, free buffer (釋放緩沖區(qū))

  這個等待事件表明系統(tǒng)正在等待內(nèi)存中的可用空間,這說明當前Buffer 中已經(jīng)沒有Free 的內(nèi)存空間。Free Buffer 等待可能說明DBWR 的寫出速度不夠,或者磁盤存在嚴重的競爭,可以需要考慮增加檢查點、使用更多的DBWR 進程,或者增加物理磁盤的數(shù)量,分散負載,平衡IO。

  4, buffer busy(緩沖區(qū)忙)

  該等待事件表示正在等待一個以unshareable方式使用的緩沖區(qū),或者表示當前正在被讀入buffer cache。一般來說Buffer Busy Wait不應(yīng)大于1%。檢查緩沖等待統(tǒng)計部分(或V$WAITSTAT),看一下等待是否位于段頭(Segment Header)。如果是,可以考慮增加自由列表(freelist,對于Oracle8i DMT)或者增加freelist groups(在很多時候這個調(diào)整是立竿見影的,在8.1.6之前,這個freelists參數(shù)不能動態(tài)修改;在8.1.6及以后版本,動態(tài)修改 feelists需要設(shè)置COMPATIBLE至少為8.1.6).

  This view lists block contention statistics. This table is only updated when timed statistics are enabled.

  Column

  Datatype

  Description

  CLASS

  VARCHAR2(18)

  Class of the block

  COUNT

  NUMBER

  Number of waits by this OPERATION for this CLASS of block

  TIME

  NUMBER

  Sum of all wait times for all the waits by this OPERATION for this CLASS of block

  select * from V$WAITSTAT

  CLASS

  COUNT

  TIME

  data block

  318671

  91287

  undo header

  50352

  1172

  undo block

  28

  1

  segment header

  10

  5

  file header block

  8

  1

  1st level bmb

  3

  0

  bitmap index block

  0

  0

  system undo block

  0

  0

  system undo header

  0

  0

  unused

  0

  0

  bitmap block

  0

  0

  save undo header

  0

  0

  save undo block

  0

  0

  sort block

  0

  0

  free list

  0

  0

  3rd level bmb

  0

  0

  2nd level bmb

  0

  0

  extent map

  0

  0

  如果這一等待位于undo header,可以通過增加回滾段(rollback segment)來解決緩沖區(qū)的問題。如果等待位于undo block上,

關(guān)鍵詞標簽:ORACLE等待事件監(jiān)控

相關(guān)閱讀

文章評論
發(fā)表評論

熱門文章 Oracle中使用alter table來增加,刪除,修改列Oracle中使用alter table來增加,刪除,修改列oracle中使用SQL語句修改字段類型-oracle修oracle中使用SQL語句修改字段類型-oracle修使用低權(quán)限Oracle數(shù)據(jù)庫賬戶得到管理員權(quán)限使用低權(quán)限Oracle數(shù)據(jù)庫賬戶得到管理員權(quán)限Oracle對user的訪問控制Oracle對user的訪問控制

相關(guān)下載

人氣排行 ORACLE SQL 判斷字符串是否為數(shù)字的語句Oracle中使用alter table來增加,刪除,修改列的語法ORACLE和SQL語法區(qū)別歸納(1)oracle grant 授權(quán)語句如何加速Oracle大批量數(shù)據(jù)處理Oracle刪除表的幾種方法ORACLE修改IP地址后如何能夠使用Oracle 10g創(chuàng)建表空間和用戶并指定權(quán)限