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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Oracle-等待事件解读

發布時間:2025/3/21 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle-等待事件解读 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

概述

Oracle-OLAP和OLTP解讀

Oracle-index索引解讀

Oracle-分區表解讀

Oracle-鎖解讀

Oracle-等待事件解讀

Oracle-procedure/cursor解讀


等待事件主要可以分為兩類,即空閑(IDLE)等待事件和非空閑(NON-IDLE)等待事件。

1). 空閑等待事件

ORACLE正等待某種工作,在診斷和優化數據庫的時候,不用過多注意這部分事件。

2). 非空閑等待事件

專門針對 ORACLE 的活動,指數據庫任務或應用運行過程中發生的等待,這些等待事件是在調整數據庫的時候需要關注與研究的。

在 Oracle 10g 中的等待事件可以通過 v$event_name 視圖來查看等待事件的相關信息。

常見等待事件

Buffer busy waits

從本質上講,這個等待事件的產生僅說明了一個會話在等待一個 Buffer(數據塊),但是導致這個現象的原因卻有很多種。

常見的兩種是:

  • 當一個會話視圖修改一個數據塊,但這個數據塊正在被另一個會話修改時
  • 當一個會話需要讀取一個數據塊,但這個數據塊正在被另一個會話讀取到內存中時。

Oracle 操作的最小單位是塊( Block),即使你要修改一條記錄,也需要對這條記錄所在的這個數據塊做操作。

當一個會話修改一個數據塊時,是按照以下步驟來完成的:
( 1) 以排他的方式獲得這個數據塊( Latch)
( 2) 修改這個數據塊。
( 3) 釋放 Latch。


Buffer latch

內存中數據塊的存放位置是記錄在一個 hash 列表( cache buffer chains)當中的。

當一個會話需要訪問某個數據塊時,它首先要搜索這個 hash 列表,從列表中獲得數據塊的地址,然后通過這個地址去訪問需要的數據塊,這個列表 Oracle會使用一個 latch 來保護它的完整性。

當一個會話需要訪問這個列表時,需要獲取一個 Latch,只有這樣,才能保證這個列表在這個會話的瀏覽當中不會發生變化。

產生 buffer latch 的等待事件的主要原因是:

  • ( 1) Buffer chains 太長,導致會話搜索這個列表花費的時間太長,使其他的會話處于等待狀態。
  • ( 2) 同樣的數據塊被頻繁訪問,就是我們通常說的熱快問題。

Control file parallel write

控制文件頻繁寫入的原因很多,比如:
( 1) 日志切換太過頻繁,導致控制文件信息相應地需要頻繁更新。
( 2) 系統 I/O 出現瓶頸,導致所有 I/O 出現等待。

當系統出現日志切換過于頻繁的情形時,可以考慮適當地增大日志文件的大小來降低日志切換頻率。

當系統出現大量的 control file parallel write 等待事件時,可以通過比如降低控制文件的拷貝數量,將控制文件的拷貝存放在不同的物理磁盤上的方式來緩解I/O 爭用。

等等…….

總結

以上是生活随笔為你收集整理的Oracle-等待事件解读的全部內容,希望文章能夠幫你解決所遇到的問題。

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