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

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

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

時(shí)間:2015-06-28 00:00:00 來(lái)源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評(píng)論(1)

  監(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運(yùn)行狀況的重要依據(jù)及指標(biāo).

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

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

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

  2? oracle等待事件類型

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

  管理類: administrative

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

  應(yīng)用程序類:

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

  群集類:Cluster

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

  提交確認(rèn)類:Commit

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

  并發(fā)類:Concurrency

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

  配置類:Configuration

  此類等待事件是由數(shù)據(jù)庫(kù)或?qū)嵗牟划?dāng)配置造成的,比如,重做日志文件尺寸太小,共享池的大小等。

  空閑類:Idle

  此類等待事件意味著會(huì)話不活躍,等待工作。比如,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

  此類等待事件通過(guò)是由后臺(tái)進(jìn)程的I/O操作引起的,比如DBWR等待,db file paralle write。

  用戶I/O類:User I/O

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

  3 等待事件詳細(xì)描述

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

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

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

  因?yàn)槿頀呙璧絻?nèi)存的數(shù)據(jù)塊被置于LRU鏈表的冷端, 所以這些數(shù)據(jù)塊將可能在較短時(shí)間內(nèi)被置換出物理內(nèi)存, 為了避免反復(fù)物理IO, 對(duì)頻繁訪問(wèn)的較小的數(shù)據(jù)表,可以選擇把他們cache到內(nèi)存中.

  當(dāng)這個(gè)等待時(shí)間比較顯著時(shí), 可以結(jié)合v$session_longops動(dòng)態(tài)性能視圖來(lái)進(jìn)行診斷, 該視圖中記錄了長(zhǎng)時(shí)間(運(yùn)行時(shí)間超過(guò)6秒)運(yùn)行的事務(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#副標(biāo)題#e#

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

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

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

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

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

  該等待事件表示正在等待一個(gè)以u(píng)nshareable方式使用的緩沖區(qū),或者表示當(dāng)前正在被讀入buffer cache。一般來(lái)說(shuō)Buffer Busy Wait不應(yīng)大于1%。檢查緩沖等待統(tǒng)計(jì)部分(或V$WAITSTAT),看一下等待是否位于段頭(Segment Header)。如果是,可以考慮增加自由列表(freelist,對(duì)于Oracle8i DMT)或者增加freelist groups(在很多時(shí)候這個(gè)調(diào)整是立竿見影的,在8.1.6之前,這個(gè)freelists參數(shù)不能動(dòng)態(tài)修改;在8.1.6及以后版本,動(dòng)態(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,可以通過(guò)增加回滾段(rollback segment)來(lái)解決緩沖區(qū)的問(wèn)題。如果等待位于undo block上,

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

相關(guān)閱讀

文章評(píng)論
發(fā)表評(píng)論

熱門文章 Oracle中使用alter table來(lái)增加,刪除,修改列的語(yǔ)法 Oracle中使用alter table來(lái)增加,刪除,修改列的語(yǔ)法 oracle中使用SQL語(yǔ)句修改字段類型-oracle修改SQL語(yǔ)句案例 oracle中使用SQL語(yǔ)句修改字段類型-oracle修改SQL語(yǔ)句案例 誤刪Oracle數(shù)據(jù)庫(kù)實(shí)例的控制文件 誤刪Oracle數(shù)據(jù)庫(kù)實(shí)例的控制文件 為UNIX服務(wù)器設(shè)置Oracle全文檢索 為UNIX服務(wù)器設(shè)置Oracle全文檢索

相關(guān)下載

    人氣排行 oracle中使用SQL語(yǔ)句修改字段類型-oracle修改SQL語(yǔ)句案例 Oracle中使用alter table來(lái)增加,刪除,修改列的語(yǔ)法 ORACLE SQL 判斷字符串是否為數(shù)字的語(yǔ)句 ORACLE和SQL語(yǔ)法區(qū)別歸納(1) oracle grant 授權(quán)語(yǔ)句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數(shù)據(jù)處理 Oracle刪除表的幾種方法