• <sub id="h4knl"><ol id="h4knl"></ol></sub>
    <sup id="h4knl"></sup>
      <sub id="h4knl"></sub>

      <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
      1. <strong id="h4knl"></strong>

      2. Oracle認證:Freebufferwaits等待事件總結

        時間:2024-09-01 17:14:16 Oracle認證 我要投稿
        • 相關推薦

        Oracle認證:Freebufferwaits等待事件總結

          Free buffer waits

        Oracle認證:Freebufferwaits等待事件總結

          1.簡述:當數據庫要在buffer cache中尋找空閑空間來放置數據,但發現空間不足時,就會產生這個等待;

          2.詳述:

          a)在用戶請求塊的DBA上應用HASH函數,獲得適當的hash bucket;

          b)檢索bucket對應的chain,確認塊頭是否存在,若存在就使用;

          c)若不存在,用戶進程在LRU鏈上按最近最少使用的順序尋找空閑緩沖區。若在此過程中發現臟塊,則將其移到LRUW列。找到空閑緩沖區后,就可以從數據文件將塊讀到該緩沖區上;

          d)在LRU列上尋找,一般掃描40%的比例,掃完后沒有發現空閑緩沖區,就會停止掃描并驅使DBWR將臟塊寫到磁盤上;

          e)在等待dbwr寫臟塊的過程中,用戶進程在等待free buffer waits事件。

          3.原因:三部分

          1.data buffer太小,導致空閑空間不夠

          2.臟塊寫得慢。

          a)內存中的臟數據太多,DBWR無法及時將這些臟數據寫到磁盤中以釋放空間,也就是可能有批量dml操作。

          b)dbwr數太少,db_writer_processes參數是否設得過少,配合os上的ps -ef | grep | grep dbw查看dbwr數量

          c)緩慢的IO子系統,db file parallel write較多,v

          d)延遲塊清除,即延遲塊頭事務標記清除。

          3.要申請的空間過多

          a)低效率的SQL語句導致過量的物理讀。

          4.附錄:前臺進程掃描lru鏈表,看有沒空閑的空間,一般要掃到預定義的限度才停止掃描,這個限度是LRU鏈表的百分比,9i中默認40%, 可以通過查詢。 select * from x where kvittag = 'kcbfsp';或者查詢參數 _db_block_max_scan_pct 也是40. 出現場景:imp,impdp導數進庫也可能出現這個等待。 這個等待事件包含2個參數:File#: 需要讀取的數據塊所在的數據文件的文件號。 Block#: 需要讀取的數據塊塊號。 什么是延遲塊清除? 在事務提交前,這個事務修改得block已經被dbwr寫到disk中去了。我們知道,塊頭會記錄這個塊有活動事務存在,后來這個事務commit 時,oracle不可能再把它讀回到內存中來修改塊頭。只能等下回用它時,到undo段里查詢事務記錄后,再修改塊標志為已commit.比如如果對一個大表有delete操作,后續有人對這個表有select操作,因為延遲塊清除的特性,就會占用大量buffer.這也是為什么select也會產生 redo的原因。(select的時候要修改塊頭)delay block cleanout : 主要針對大事務,可能在commit的時候,一些數據臟快已寫入數據文件,提交時,無法把這些數據塊標記commit,該數據塊的下一個讀者對其進行 delay block cleanout .數據塊的下一個讀者首先檢查該塊的事務狀態是否為活動,不活動的話,修改事務的標志(flag)。這樣可以避免不必要的事務讀。

        《&.doc》
        将本文的Word文档下载到电脑,方便收藏和打印
        推荐度:
        点击下载文档

        【Oracle認證:Freebufferwaits等待事件總結】相關文章:

        Oracle認證作用07-31

        Oracle最新認證07-13

        Oracle認證簡介11-30

        Oracle認證途徑09-11

        Oracle認證:ORACLE綁定變量BINDPEEKING08-25

        Oracle認證:Oracle控制件文件修復07-27

        Oracle認證報考流程01-11

        Oracle認證考試技巧09-21

        Oracle認證考試相關08-01

        在线咨询
        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码
      3. <sub id="h4knl"><ol id="h4knl"></ol></sub>
        <sup id="h4knl"></sup>
          <sub id="h4knl"></sub>

          <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
          1. <strong id="h4knl"></strong>

          2. 亚洲精品亚洲人成在线观看 | 思思热免费在线精品视频 | 亚洲A∨一区二区影片 | 亚洲欧美日韩国产另类丝瓜 | 亚洲无线码一区二区三区在线观看 | 中文字幕乱倫视频 |

            Oracle認證:Freebufferwaits等待事件總結

              Free buffer waits

            Oracle認證:Freebufferwaits等待事件總結

              1.簡述:當數據庫要在buffer cache中尋找空閑空間來放置數據,但發現空間不足時,就會產生這個等待;

              2.詳述:

              a)在用戶請求塊的DBA上應用HASH函數,獲得適當的hash bucket;

              b)檢索bucket對應的chain,確認塊頭是否存在,若存在就使用;

              c)若不存在,用戶進程在LRU鏈上按最近最少使用的順序尋找空閑緩沖區。若在此過程中發現臟塊,則將其移到LRUW列。找到空閑緩沖區后,就可以從數據文件將塊讀到該緩沖區上;

              d)在LRU列上尋找,一般掃描40%的比例,掃完后沒有發現空閑緩沖區,就會停止掃描并驅使DBWR將臟塊寫到磁盤上;

              e)在等待dbwr寫臟塊的過程中,用戶進程在等待free buffer waits事件。

              3.原因:三部分

              1.data buffer太小,導致空閑空間不夠

              2.臟塊寫得慢。

              a)內存中的臟數據太多,DBWR無法及時將這些臟數據寫到磁盤中以釋放空間,也就是可能有批量dml操作。

              b)dbwr數太少,db_writer_processes參數是否設得過少,配合os上的ps -ef | grep | grep dbw查看dbwr數量

              c)緩慢的IO子系統,db file parallel write較多,v

              d)延遲塊清除,即延遲塊頭事務標記清除。

              3.要申請的空間過多

              a)低效率的SQL語句導致過量的物理讀。

              4.附錄:前臺進程掃描lru鏈表,看有沒空閑的空間,一般要掃到預定義的限度才停止掃描,這個限度是LRU鏈表的百分比,9i中默認40%, 可以通過查詢。 select * from x where kvittag = 'kcbfsp';或者查詢參數 _db_block_max_scan_pct 也是40. 出現場景:imp,impdp導數進庫也可能出現這個等待。 這個等待事件包含2個參數:File#: 需要讀取的數據塊所在的數據文件的文件號。 Block#: 需要讀取的數據塊塊號。 什么是延遲塊清除? 在事務提交前,這個事務修改得block已經被dbwr寫到disk中去了。我們知道,塊頭會記錄這個塊有活動事務存在,后來這個事務commit 時,oracle不可能再把它讀回到內存中來修改塊頭。只能等下回用它時,到undo段里查詢事務記錄后,再修改塊標志為已commit.比如如果對一個大表有delete操作,后續有人對這個表有select操作,因為延遲塊清除的特性,就會占用大量buffer.這也是為什么select也會產生 redo的原因。(select的時候要修改塊頭)delay block cleanout : 主要針對大事務,可能在commit的時候,一些數據臟快已寫入數據文件,提交時,無法把這些數據塊標記commit,該數據塊的下一個讀者對其進行 delay block cleanout .數據塊的下一個讀者首先檢查該塊的事務狀態是否為活動,不活動的話,修改事務的標志(flag)。這樣可以避免不必要的事務讀。