oracle中extents存在的理由
extents的特性:
1:一個extent由相連的多個blocks組成,多個extents組成一個segment,
2:oracle在為segment分配空間時,是以extent為單位
因此extents帶來的好處:
1:空間分配、釋放效率將會提升
oracle建議一個segment的extents數量一般不要超過1024,而對於big table可能包含上千萬個block,如果沒有extent,那麼oracle就要分配上千萬個block,而有了extent,只要分配上千個extents就行。extent表示大量的blocks效率很高,extent並不列出所有的block,而是列出起始兩個block(因為extent是聯絡的,起始block就能定位一個extent),oracle分配空間的時間與extents的數目呈比例,與blocks數目沒有很大關係。同理,在釋放空間時,extent一樣可以提高操作的效率。
對字典管理的表空間,extent作用很明顯,如果沒有extent,資料字典中必須記錄各個block,如果big table佔用上千萬個block,那麼資料字典也會大量佔用,假設資料字典會佔用上百萬個block,分配或釋放這些big table時,還要對這些上百萬block的資料字典插入會刪除,豈不會額外新增很多工作,
2:全表掃描
在進行全表掃描時,利用extent包含聯絡blocks的特性,可以一次讀出多個欄位,這樣就能大大減少物理IO,極大提高掃描的效率。
every thing has two side
extent帶來的負面作用:
表空間碎片:
如果沒有extent,oracle在給segment分配空間時以block為單位,而block總是一樣大的,典型的8k,16k,這時每個block都可以得到利用。有了extent,extent就是最小的分配單元,而extent的大小並不總是相等的,假設開始的的三個segment都很小,extent也不大,例如10個blocks,如果第二個的segment釋放後,在中間的那個10block就空閒出來,但是如果以後segment都要求分配至少20個block的extent時,那麼這10blocks的空閒空間就得不到利用,在極端情況下,表空間由1000個10block的空閒,但無法分配20block的extent。exp/imp能消除碎片,本地管理的表空間對連續的碎片有自動處理的能力,但對不連續的碎片無能為力。
轉載:http://hi.baidu.com/lzytest/blog/item/2e482a38d3adc424b8998fba.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22630256/viewspace-1042983/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle中checkpoint存在的意義Oracle
- oracle中create directory建在/home/oracle下可能存在的風險Oracle
- Overview of Extents(11)View
- MSSQL---extentsSQL
- Extents in Indexes (19)Index
- 從dba_extents返回結果為空 - Oracle10gOracle
- 【Oracle】arraysize的研究(存在疑問)Oracle
- Oracle存在修改,不存在插入記錄Oracle
- How To Efficiently Drop A Table With Many Extents
- 為lob型別分配extents型別
- Extents in Materialized Views and Their Logs (18)ZedView
- latex 中的存在,任意, ξ 符號符號
- discover中的workbook儲存在哪個表中
- oracle中判斷欄位是否存在和新增表結構Oracle
- [doc]How To Efficiently Drop A Table With Many Extents
- ORACLE從資料庫中獲取已存在的TABPLESPACE及INDEX建立指令碼Oracle資料庫Index指令碼
- 揭開MSSQL---extents內部的神秘面紗SQL
- JavaFX教程-廣度(Extents)和列舉Java
- Oracle 調優確定存在問題的SQLOracleSQL
- Windows中搭建已存在的Octopress環境Windows
- 軟體測試中存在的問題
- 意向鎖-Oracle和MySQL中都存在OracleMySql
- 資料庫中沒有外來鍵的9個理由資料庫
- ORACLE 8i 遇到報錯:ORA-01631: max # extents (505) reached in tableOracle
- SQL Server中存在真正的“事務巢狀”SQLServer巢狀
- Curve 分散式儲存在 KubeSphere 中的實踐分散式
- 在Oracle 中查詢某個欄位存在於哪幾個表 (轉)Oracle
- ORACLE 11G R2 11.2.0.1.0 不使用SCAN IP的理由Oracle
- ORACLE寫日誌過程存在缺陷Oracle
- 5 個不用 Bootstrap 的理由boot
- oracle的imp報表空間不存在的解決Oracle
- AUM模式下,undo extents獲取演算法模式演算法
- 在遊戲中,“我”是一種怎樣的存在?遊戲
- 如何快速解決網站中存在的Web漏洞?網站Web
- redis使用中存在的問題及如何避免(一)Redis
- redis使用中存在的問題及如何避免(二)Redis
- 遷移已存在的資料庫到ASM中資料庫ASM
- 推行專案管理中存在的主要問題(轉)專案管理