熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

講解Oracle數據庫B-tree索引

2013-11-13 12:48:51  來源: Oracle 
假如聚簇因子過大那麼重建索引可能會有好處聚簇因子應該接近塊的數量而非行的數量

  Btree索引

  ·索引會隨著時間的增加而變的不平衡

  

  ·刪除的索引空間不會被重用

  

  ·隨著索引層數的增加索引將會變得無效並需要重建

  

  ·聚簇因子差索引需要重建

  

  ·為了提高性能索引需要經常重建

  

  索引基礎

  

  ·一個更新由一個刪除和一個插入組成

  

  ·頁塊由索引條目(row header(/B)|length(B)|indexed data value(nB)|length(B)|RowID(B))和相應的rowid組成

  

  ·每個頁塊包含兩個指針分別前面的頁塊和後面頁塊

  

  Treedump

  

  alter session set events immediate trace name treedump level index_object_id;

  

   begin tree dump

  

  branch: x (: nrow: level: )

  

  leaf: x (: nrow: rrow: )

  

  leaf: x (: nrow: rrow: )

  

   end tree dump

  

  以上dump包含的信息如下

  

  塊類型branch(分支塊)leaf(頁塊)

  

  塊地址x

  

  nrow索引條目的數量

  

  rrow當前塊中的索引條目數量

  

  level分支塊等級(頁塊隱示為

  

  Block Dump

  

  alter system dump datafile X block X;

  

  alter system dump datafile X block min X block max X

  

  Start dump data blocks tsn: file#: minblk maxblk

  

  buffer tsn: rdba: xa (/)

  

  scn: xa seq: x flg: x tail: xa

  

  frmt: x chkval: xbc type: x=trans data

  

  Block header dump: xa

  

  Object id on Block? Y

  

  seg/obj: xdfe csc: xa itc: flg: O typ: INDEX

  

  fsl: fnx: xb ver: x

  

  Itl Xid Uba Flag Lck Scn/Fsc

  

  x xa xcbe CB scn xa

  

  x x xe C scn xa

  

  該dump包含的信息如下

  

  rdba分支塊的相對數據庫塊地址(文件號/塊號)

  

  scn塊最後改變的SCN號

  

  type塊類型

  

  seq塊改變的數量

  

  seg/obj: 進制對象ID

  

  typ段類型

  

  Itl相關的事務槽(頁塊默認為包括槽ID事務ID撤銷塊地址標記鎖信息和事務SCN

  

  通過rba確定數據文件號和塊號

  

  select DBMS_UTILITYDATA_BLOCK_ADDRESS_FILE(rba)

  

  DBMS_UTILITYDATA_BLOCK_ADDRESS_BLOCK(rba)

  

  from dual;


From:http://tw.wingwit.com/Article/program/Oracle/201311/16622.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.