欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > Oracle數據塊實現原理深入解讀

Oracle數據塊實現原理深入解讀

熱門標簽:貴陽智能電銷機器人官網 地圖標注付款了怎么找不到了 北京外呼系統公司排名 外呼系統口號 外呼系統鄭州 溫州人工外呼系統 北京營銷外呼系統廠家 沈陽400電話是如何辦理 百度地圖標注員是干什么

下午在學習oracle 10g r2 concepts

在這留一筆。

Oracle對數據庫數據文件(datafile)中的存儲空間進行管理的單位是數據塊(data block)。數據塊是數據庫中最小的(邏輯)數據單位。與數據塊對應的,所有數據在操作系統級的最小物理存儲單位是字節(byte)。每種操作系統都有一個被稱為塊容量(block size)的參數。Oracle每次獲取數據時,總是訪問整數個(Oracle)數據塊,而不是按照操作系統塊的容量訪問數據。

數據庫中標準的數據塊(data block)容量是由初始化參數 DB_BLOCK_SIZE指定的。除此之外,用戶還可以指定五個非標準的數據塊容量(nonstandardblock size)。數據塊容量應該設為操作系統塊容量的整數(同時小于數據塊容量的最大限制),以便減少不必要的I/O操作。Oracle數據塊是Oracle可以使用和分配的最小存儲單位。

數據塊結構

在Oracle中,不論數據塊中存儲的是表(table)、索引(index)或簇表(clustered data),其內部結構都是類似的。塊結構圖如下所示:

本圖顯示了數據塊的各個組成部分,包括:數據塊頭(包括標準內容和可變內容)(common and variable header),表目錄區(table directory),行目錄區(row directory),可用空間區(free space),行數據區(row data)。圖中兩個箭頭表示一個數據塊中的可用空間區的容量是可變的。

數據塊頭(包括標準內容和可變內容)

數據塊頭(header)中包含了此數據塊的概要信息,例如塊地址(block address)及此數據塊所屬的段(segment)的類型(例如,表或索引)。

表目錄區

如果一個數據表在此數據塊中儲存了數據行,那么數據表的信息將被記錄在數據塊的表目錄區(table directory)中。

行目錄區

此區域包含數據塊中存儲的數據行的信息(每個數據行片斷(row piece) 在行數據區(row data area)中的地址)。[一個數據塊中可能保存一個完整的數據行,也可能只保存數據行的一部分 ,所以文中使用row piece]

當一個數據塊(data block)的行目錄區(row directory)空間被使用后,即使數據行被刪除(delete),行目錄區空間也不會被回收。舉例來說,當一個曾經包含50條記錄的數據塊被清空后,其塊頭(header)的行目錄區仍然占用100字節(byte)的空間

管理開銷

數據塊頭(data block header),表目錄區(table directory),行目錄區(rowdirectory)被統稱為管理開銷(overhead)。其中 有些開銷的容量是固定的;而有些開銷的總容量是可變的。數據塊中固定及可變管理開銷的容量平均在84到107字節(byte)之間。

行數據

數據塊(data block)中行數據區(row data)包含了表或索引的實際數據。一個數據行可以跨多個數據塊。

可用空間區

在插入新數據行,或在更新數據行需要更多空間時(例如,原來某行最后一個字段為空(trailing null),現在要更新為非空值),將 使用可用空間區(free space)中的空間。如果一個數據塊(data block)屬于表或簇表的數據段(data segment),或屬于索引的索引段(index segment),那么在其可用空間區中還可能會存儲事務條目(transaction entry)。如果一個數據塊中的數據行(row)正在由INSERT,UPDATE,DELETE,及 SELECT...FOR UPDATE 語句訪問,此數據塊中就需要保存事務條目。事務條目所需的存儲空間依據操作系統而定。在常見的操作系統中事務條目大約需要占用23字節(byte)。

可用空間管理

可用空間可以被手動或自動管理

數據庫中,每個段(segment)的可用空間可以被自動管理。段內的可用/已用空間以位圖(bitmap)形式記錄,這與可用塊以列表方式的管理不同。段空間自動管理(Automatic segment-space management)具備以下優勢:

● 易于使用● 空間利用效率更高,尤其針對每行數據容量差異大的表(或其他對象)● 能夠更好地針對當前數據的情況實時調整● Better multi-instance behavior. in terms of performance/space utilization

用戶可以在創建一個本地管理的表空間(locally managed tablespace)時選擇自動段空間管理(automatic segment-space management)功能。這樣在此表空間內創建的段都將默認地設置為自動段空間管理。

數據塊可用空間的有效性及優化

有兩種SQL語句可以增加數據塊中的可用空間:分別是 DELETE 語句,和將現有數據值更新為占用容量更小值的 UPDATE 語句。在以下兩種條件下,上述兩中操作釋放的空間可以被后續的 INSERT 語句使用:

● 如果 INSERT 語句與上述兩種操作在同一事務(transaction)中,且位于釋放空間的語句之后,那么 INSERT 語句可以使用被釋放的空間。● 如果 INSERT 語句與釋放空間的語句在不同的事務中(比如兩者是由不同的用戶提交的),那么只有在釋放空間的語句提交后,且插入數據必需使用此數據塊時,INSERT 語句才會使用被釋放的空間。

數據塊(data block)中被釋放出的空間未必與可用空間區(free space)相連續。Oracle在滿足以下條件時才會將釋放的空間合并到可用空間區:(1)INSERT 或 UPDATE 語句選中了一個有足夠可用空間容納新數據的數據塊,(2)但是此塊中的可用空間不連續,數據無法被寫入到數據塊中連續的空間里。Oracle只在 滿足上述條件時才對數據塊中的可用空間進行合并,這樣做是為了避免過于頻繁的空間合并工作影響數據庫性能。

行鏈接(Row Chaining)及行遷移(Row Migrating)

有兩種情況會導致表中某行數據過大,一個數據塊(data block)無法容納。第一種情況,當一行數據被插入時一個數據塊就無法容納。在這種情況下Oracle將這行數據存儲在段內的一個數據塊鏈(chain)中。在插入數據量大的行時常會發生行鏈接(row chaining),例如一個包含數據類型為 LONG 或LONG RAW 列的數據行。此時行鏈接不可避免。

第二種情況,原本存儲在一個數據塊(data block)內的數據行,因為更新操作導致長度增長,而所在數據塊的可用空間也不能容納增長后的數據行。在這種情況下,Oracle將此行數據遷移(migrate)到新的數據塊中。Oracle在被遷移數據行原來所在位置保存一個指向新數據塊的指針。被遷移數據行的rowid 保持不變。

當數據行發生鏈接(chain)或遷移(migrate)時,對其訪問將會造成 I/O 性能降低,因為Oracle為獲取這些數據行的數據時,必須訪問更多的數據塊(data block)。

PCTFREE,PCTUSED,及行鏈接(Row Chaining)

在手動管理的表空間(manually managed tablespaces)中,用戶可以使用PCTFREE 和 PCTUSED 這兩個存儲管理參數來控制對某段(segment)進行插入和更新操作時,如何利用屬于此段的數據塊(data block)中的可用空間。用戶也可以在創建或修改索引時為其設定 PCTFREE 參數(索引存儲在索引段(index segment)中)

PCTFREE 參數

PCTFREE 參數用來設置一個數據塊(data block)中至少需要保留(reserve)多少可用空間(百分比值),為數據塊中已有數據更新時可能發生的數據量增長做準備。例如,當用戶用 CREATE TABLE 語句創建表時指定了以下參數:

PCTFREE 20

這個參數設定了此表對應的數據段(data segment)中的每個數據塊(datablock)至少保留20%的可用空間,以備塊中已有數據更新時使用。只要數據塊中行數據區與數據塊頭的容量之和不超過數據塊總容量的80%,用戶就可以向其中插入新數據,數據行被放入行數據區(row data area),相關信息被寫入數據塊頭(overhead area)

下圖說明了PCTFREE 的作用:

 

PCTUSED 參數

PCTUSED 參數用于決定一個數據塊(data block)是否可被用于插入新數據,她的依據是數據區(row data)與數據塊頭(overhead)的容量之和占數據塊全部容量的最大百分比。當一個數據塊中的可用空間比例小于PCTFREE 參數的規定時,Oracle就認為此數據塊無法被用于插入新數據,直到數據塊中的占用容量比例小于 PCTUSED 參數的限定。在占用容量比例大于 PCTUSED 參數的限定之前,Oracle只在更新數據塊內已有數據時才會使用此數據塊的可用空間。例如,當用戶用 CREATE TABLE 語句創建表時指定了以下參數:

PCTUSED 40

在例子中,當此表的某數據塊占用容量比例高于40%時,Oracle不會將此數據塊用于插入新數據行(假設此數據塊的可用空間曾經低于 PCTFREE 的限定)

PCTUSED 的作用

PCTFREE 和 PCTUSED 如何協同發揮作用

PCTFREE 和 PCTUSED 共同作用可以優化數據塊(data block)的空間使用。

使用 PCTFREE 和 PCTUSED 參數管理數據塊的可用空間

 

上圖說明了 PCTFREE 和 PCTUSED 如何共同作用以管理數據塊(data block)可用空間的使用。

在第一步中,數據塊占用空間比例小于80%時才能插入新數據,因為PCTFREE 參數限定必須保留20%的可用空間用于塊內已有數據的更新。在第二步中,對數據塊中已有數據的更新操作可以使用數據塊中的保留空間。只有當數據塊內的占用空間比例低于40%時才能向其中插入新數據。在第三步中,當數據塊內的占用空間比例低于40%時,此數據塊再次可以被用于插入新數據。在第四步中,數據塊占用空間比例小于80%時才能插入新數據,因為PCTFREE 參數限定必須保留20%的可用空間用于塊內已有數據的更新。此過程如此往復循環。

在新分配的數據塊中(data block),可用于插入(insert)數據的空間等于數據塊總容量減去數據塊頭(block overhead)再減去預留可用空間(PCTFREE)。而更新(update)數據塊內已有數據可使用數據塊中的所有可用空間。因此,更新操作能夠使數據塊內的可用空間低于的 PCTFREE 限制,因為這些空間是專為更新操作而預留的。

在每個數據段(data segment)與索引段(index segment)中,Oracle管理著一個或多個可用塊列表(free list)--其中列出了所有屬于此段的數據擴展(extent),且可用空間比例大于 PCTFREE 限定的數據塊。這些塊可以被插入(insert)操作使用。當用戶提交了 INSERT 語句后,Oracle從可用塊列表中選擇第一個有效的數據塊使用。如果此數據塊的可用空間不夠容納 INSERT語句提交的數據,且此塊的占用容量已經超過PCTUSED 的限定,Oracle就將其從可用塊列表中移出。一個段可以同時使用多個可用塊列表,以減少對一個表進行并發插入(concurrent insert)時產生的競爭。

當用戶提交了 DELETE 或 UPDATE 語句后,Oracle處理語句并檢查相關數據塊中的占用空間比例是否小于 PCTUSED 的規定。如果滿足,那么這個數據塊就被放入當前事務(transaction)正在使用的可用塊列表(free list)的頭部,如果當前事務還需要寫入數據,此塊將被首先使用。當事務提交后,此數據塊中的可用空間還可被其他事務使用。

您可能感興趣的文章:
  • Oracle數據塊損壞之10231內部事件不完全恢復

標簽:通遼 衡水 包頭 溫州 淮北 潮州 衢州 定西

巨人網絡通訊聲明:本文標題《Oracle數據塊實現原理深入解讀》,本文關鍵詞  Oracle,數據,塊,實現,原理,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Oracle數據塊實現原理深入解讀》相關的同類信息!
  • 本頁收集關于Oracle數據塊實現原理深入解讀的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    久久发布国产伦子伦精品| wwwxx日本| 一区二区黄色片| 欧美三级电影网站| 亚洲婷婷在线视频| 成人免费不卡视频| 成年人一级黄色片| 欧美国产在线观看| 国产成人综合亚洲91猫咪| 人与嘼交av免费| 久久久www成人免费无遮挡大片| 青青草国产成人av片免费| 狠狠人妻久久久久久综合蜜桃| 日本福利片在线观看| 92精品国产成人观看免费| 日韩一区二区精品| 午夜精品一区在线观看| 182在线视频| 日韩亚洲电影在线| 日韩电影一二三区| 3d动漫精品啪啪一区二区下载| 日韩欧美中文字幕制服| 蜜桃精品视频在线| 一级特黄曰皮片视频| 国产婷婷色一区二区三区| 国产成人在线视频网站| 国产黄色的视频| 亚洲免费在线看| 韩国av中国字幕| 91精品国产综合久久福利| 日本最新不卡在线| 91在线无精精品白丝| 中文字幕不卡一区| av在线一区二区三区| 欧美天天综合网| 日韩一区欧美二区| 性猛交娇小69hd| 国产精品日韩成人| 91色.com| 日韩一区和二区| 国产曰批免费观看久久久| 成人自拍小视频| 亚洲综合在线免费观看| 国产二级一片内射视频播放| 精品国产乱码久久久久久影片| 国产精品亚洲人在线观看| 一本大道综合伊人精品热热| 国产精品久久久久久久久搜平片| 三级在线观看一区二区| 无码国产精品一区二区免费式直播 | 91精品国产综合久久久久| 蜜桃av一区二区三区电影| 亚洲精品国产精品乱码在线观看| 成人欧美一区二区三区白人| yjizz视频| 久久青草欧美一区二区三区| 成人福利在线看| 欧美一区二区在线播放| 国产精品自拍三区| 欧美在线视频日韩| 看电影不卡的网站| 一本久久a久久免费精品不卡| 日产国产欧美视频一区精品| 五月天色婷婷丁香| 性久久久久久久| 亚洲女人久久久| 亚洲电影你懂得| 亚洲激情图片网| 亚洲大片一区二区三区| 在线观看亚洲大片短视频| 亚洲一区二区在线播放相泽| 少妇精品无码一区二区免费视频| 亚洲激情在线激情| 精品无码在线观看| 亚洲成av人片| 亚洲欧美一区二区三区四区五区| 日韩激情av在线| 色999日韩国产欧美一区二区| 美女网站色91| 美腿丝袜亚洲三区| 精品剧情在线观看| 91免费在线看| 久久精品夜色噜噜亚洲aⅴ| 国产精品亚洲一区二区无码| 国产欧美精品区一区二区三区| 男女性杂交内射妇女bbwxz| 国产精品欧美综合在线| 素人fc2av清纯18岁| 一区二区三区在线播| 国产在线观看免费视频软件| 日韩av在线免费观看不卡| 日本高清免费不卡视频| 国内外精品视频| 日韩欧美卡一卡二| 91免费国产在线| 国产精品毛片无遮挡高清| 国产精品无码久久久久一区二区| 亚洲一区二区在线免费观看视频| 澳门黄色一级片| 国产乱码精品一区二区三区av | 国产白丝网站精品污在线入口| 91精品国产乱| 中文字幕1区2区| 亚洲特级片在线| 婷婷丁香综合网| 久久国产三级精品| 日韩一级高清毛片| 亚洲欧洲国产视频| 亚洲一区二区偷拍精品| 色偷偷久久人人79超碰人人澡 | 日韩精品综合一本久道在线视频| 亚洲综合中文网| 亚洲欧美日韩国产成人精品影院| 国产在线免费看| 国产真实乱对白精彩久久| 精品乱码亚洲一区二区不卡| 欧美精品欧美极品欧美激情| 亚洲国产乱码最新视频| 欧美影视一区二区三区| 99精品国产99久久久久久白柏 | 国产一区啦啦啦在线观看| 国产伦理在线观看| 亚洲另类在线一区| 日本韩国欧美三级| www.欧美.com| 亚洲天堂精品视频| 草视频在线观看| 成人免费高清视频| 中文字幕一区二区三区在线播放 | 亚洲18色成人| 欧美高清精品3d| 国产污在线观看| 天使萌一区二区三区免费观看| 欧美日韩国产精品成人| 亚洲资源中文字幕| 欧美亚洲动漫精品| 美女又黄又免费的视频| 亚洲伊人伊色伊影伊综合网| 欧美三级电影在线看| japanese在线观看| 日本不卡1234视频| 精品福利一区二区三区免费视频| av电影网站在线观看| 国产剧情一区二区三区| 中文字幕不卡一区| 一本大道久久a久久综合| 无码人妻少妇色欲av一区二区| 亚洲免费观看高清在线观看| 欧美性做爰猛烈叫床潮| 亚洲少妇中文字幕| 日韩高清电影一区| 亚洲精品在线三区| 永久免费看片直接| 97se亚洲国产综合自在线 | av天堂一区二区| 日本一不卡视频| 久久亚洲影视婷婷| 一区二区三区影视| 国产男女无遮挡猛进猛出| 午夜影院久久久| 亚洲精品在线免费观看视频| 国内毛片毛片毛片毛片毛片| 99视频精品在线| 婷婷成人综合网| 国产调教视频一区| 色综合久久综合网| xxxwww国产| 国产一区不卡精品| 亚洲欧美偷拍卡通变态| 欧美一区二区三区在线电影| 一区二区三区久久久久| 成年人午夜久久久| 天堂蜜桃一区二区三区| 久久精品亚洲精品国产欧美kt∨| 日本妇女毛茸茸| 欲求不满的岳中文字幕| 国产毛片一区二区| 一区二区三区美女| 精品99999| 色偷偷久久人人79超碰人人澡| 在线精品一区二区三区| 国产不卡视频在线观看| 亚洲国产精品久久久久秋霞影院 | 91无套直看片红桃| 亚洲与欧洲av电影| 精品噜噜噜噜久久久久久久久试看 | 欧美高清视频一二三区 | 99天天综合性| 日本三级韩国三级欧美三级| 国产精品午夜免费| 欧美精品九九99久久| 男女全黄做爰文章| www.四虎精品| 国产成人自拍网| 日韩福利电影在线| 亚洲欧洲日产国产综合网| 日韩欧美国产1| 欧美影院午夜播放| 69xxx免费| 国产一区二区三区免费观看|