婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Oracle數(shù)據(jù)塊實(shí)現(xiàn)原理深入解讀

Oracle數(shù)據(jù)塊實(shí)現(xiàn)原理深入解讀

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

下午在學(xué)習(xí)oracle 10g r2 concepts

在這留一筆。

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

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

數(shù)據(jù)塊結(jié)構(gòu)

在Oracle中,不論數(shù)據(jù)塊中存儲的是表(table)、索引(index)或簇表(clustered data),其內(nèi)部結(jié)構(gòu)都是類似的。塊結(jié)構(gòu)圖如下所示:

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

數(shù)據(jù)塊頭(包括標(biāo)準(zhǔn)內(nèi)容和可變內(nèi)容)

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

表目錄區(qū)

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

行目錄區(qū)

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

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

管理開銷

數(shù)據(jù)塊頭(data block header),表目錄區(qū)(table directory),行目錄區(qū)(rowdirectory)被統(tǒng)稱為管理開銷(overhead)。其中 有些開銷的容量是固定的;而有些開銷的總?cè)萘渴强勺兊摹?shù)據(jù)塊中固定及可變管理開銷的容量平均在84到107字節(jié)(byte)之間。

行數(shù)據(jù)

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

可用空間區(qū)

在插入新數(shù)據(jù)行,或在更新數(shù)據(jù)行需要更多空間時(例如,原來某行最后一個字段為空(trailing null),現(xiàn)在要更新為非空值),將 使用可用空間區(qū)(free space)中的空間。如果一個數(shù)據(jù)塊(data block)屬于表或簇表的數(shù)據(jù)段(data segment),或?qū)儆谒饕乃饕危╥ndex segment),那么在其可用空間區(qū)中還可能會存儲事務(wù)條目(transaction entry)。如果一個數(shù)據(jù)塊中的數(shù)據(jù)行(row)正在由INSERT,UPDATE,DELETE,及 SELECT...FOR UPDATE 語句訪問,此數(shù)據(jù)塊中就需要保存事務(wù)條目。事務(wù)條目所需的存儲空間依據(jù)操作系統(tǒng)而定。在常見的操作系統(tǒng)中事務(wù)條目大約需要占用23字節(jié)(byte)。

可用空間管理

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

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

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

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

數(shù)據(jù)塊可用空間的有效性及優(yōu)化

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

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

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

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

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

第二種情況,原本存儲在一個數(shù)據(jù)塊(data block)內(nèi)的數(shù)據(jù)行,因?yàn)楦虏僮鲗?dǎo)致長度增長,而所在數(shù)據(jù)塊的可用空間也不能容納增長后的數(shù)據(jù)行。在這種情況下,Oracle將此行數(shù)據(jù)遷移(migrate)到新的數(shù)據(jù)塊中。Oracle在被遷移數(shù)據(jù)行原來所在位置保存一個指向新數(shù)據(jù)塊的指針。被遷移數(shù)據(jù)行的rowid 保持不變。

當(dāng)數(shù)據(jù)行發(fā)生鏈接(chain)或遷移(migrate)時,對其訪問將會造成 I/O 性能降低,因?yàn)镺racle為獲取這些數(shù)據(jù)行的數(shù)據(jù)時,必須訪問更多的數(shù)據(jù)塊(data block)。

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

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

PCTFREE 參數(shù)

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

PCTFREE 20

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

下圖說明了PCTFREE 的作用:

 

PCTUSED 參數(shù)

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

PCTUSED 40

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

PCTUSED 的作用

PCTFREE 和 PCTUSED 如何協(xié)同發(fā)揮作用

PCTFREE 和 PCTUSED 共同作用可以優(yōu)化數(shù)據(jù)塊(data block)的空間使用。

使用 PCTFREE 和 PCTUSED 參數(shù)管理數(shù)據(jù)塊的可用空間

 

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

在第一步中,數(shù)據(jù)塊占用空間比例小于80%時才能插入新數(shù)據(jù),因?yàn)镻CTFREE 參數(shù)限定必須保留20%的可用空間用于塊內(nèi)已有數(shù)據(jù)的更新。在第二步中,對數(shù)據(jù)塊中已有數(shù)據(jù)的更新操作可以使用數(shù)據(jù)塊中的保留空間。只有當(dāng)數(shù)據(jù)塊內(nèi)的占用空間比例低于40%時才能向其中插入新數(shù)據(jù)。在第三步中,當(dāng)數(shù)據(jù)塊內(nèi)的占用空間比例低于40%時,此數(shù)據(jù)塊再次可以被用于插入新數(shù)據(jù)。在第四步中,數(shù)據(jù)塊占用空間比例小于80%時才能插入新數(shù)據(jù),因?yàn)镻CTFREE 參數(shù)限定必須保留20%的可用空間用于塊內(nèi)已有數(shù)據(jù)的更新。此過程如此往復(fù)循環(huán)。

在新分配的數(shù)據(jù)塊中(data block),可用于插入(insert)數(shù)據(jù)的空間等于數(shù)據(jù)塊總?cè)萘繙p去數(shù)據(jù)塊頭(block overhead)再減去預(yù)留可用空間(PCTFREE)。而更新(update)數(shù)據(jù)塊內(nèi)已有數(shù)據(jù)可使用數(shù)據(jù)塊中的所有可用空間。因此,更新操作能夠使數(shù)據(jù)塊內(nèi)的可用空間低于的 PCTFREE 限制,因?yàn)檫@些空間是專為更新操作而預(yù)留的。

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

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

您可能感興趣的文章:
  • Oracle數(shù)據(jù)塊損壞之10231內(nèi)部事件不完全恢復(fù)

標(biāo)簽:通遼 衡水 包頭 溫州 淮北 潮州 衢州 定西

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Oracle數(shù)據(jù)塊實(shí)現(xiàn)原理深入解讀》,本文關(guān)鍵詞  Oracle,數(shù)據(jù),塊,實(shí)現(xiàn),原理,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Oracle數(shù)據(jù)塊實(shí)現(xiàn)原理深入解讀》相關(guān)的同類信息!
  • 本頁收集關(guān)于Oracle數(shù)據(jù)塊實(shí)現(xiàn)原理深入解讀的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美电影免费观看完整版| 日韩电影在线一区二区三区| 亚洲精品视频在线看| 秋霞影院一区二区| 色狠狠综合天天综合综合| 欧洲在线/亚洲| 1024成人网色www| 国产suv一区二区三区88区| 日一区二区三区| 色综合色综合色综合 | 5858s免费视频成人| 国产精品国产精品国产专区不片| 国产综合久久久久久久久久久久| 欧美视频一区二区三区在线观看| 自拍av一区二区三区| 粉嫩av一区二区三区| 精品久久久久一区二区国产| 视频一区在线播放| 欧美日韩国产免费一区二区| 亚洲伦理在线精品| 91麻豆国产福利在线观看| 中文字幕亚洲视频| 91小视频免费观看| 国产精品久久久久久久久久久免费看 | 亚洲国产视频直播| 国产成人久久精品77777最新版本| 91精品国产欧美日韩| 婷婷综合久久一区二区三区| 在线成人av影院| 美腿丝袜亚洲综合| 精品动漫一区二区三区在线观看| 久久精品国产精品青草| 精品久久久久久久人人人人传媒| 久久精品国产亚洲5555| 精品久久久久久最新网址| 久久99精品国产麻豆婷婷| 日韩欧美在线综合网| 精品伊人久久久久7777人| 久久综合久色欧美综合狠狠| 日韩综合一区二区| 91麻豆精品国产自产在线观看一区 | 日产精品久久久久久久性色| 日韩一区二区三区免费看 | 欧美日本不卡视频| 麻豆成人久久精品二区三区小说| 欧美精彩视频一区二区三区| 亚洲欧洲精品一区二区三区| 91美女片黄在线观看91美女| 亚洲线精品一区二区三区| 欧美电影在线免费观看| 国产成人av网站| 成人av电影在线播放| 亚洲无线码一区二区三区| 国产91丝袜在线播放九色| 一本到不卡免费一区二区| 国产在线播放一区| 日韩欧美综合在线| 国产成人精品影院| 综合中文字幕亚洲| 一本色道综合亚洲| 精品一区二区三区在线播放视频| 亚洲永久精品国产| 亚洲综合小说图片| 日韩av中文字幕一区二区三区| 欧美午夜在线观看| 日韩精品电影一区亚洲| 日韩精品电影一区亚洲| 久久国产福利国产秒拍| 成人av在线资源网站| 欧美激情中文字幕一区二区| 国产午夜精品一区二区| 久久69国产一区二区蜜臀| 美日韩一区二区| 精品久久久久久久久久久院品网| 欧美刺激午夜性久久久久久久| 久久久久久久免费视频了| 亚洲免费观看视频| 粉嫩13p一区二区三区| 成人蜜臀av电影| 久久精品人人做人人综合| 亚洲色图.com| 成人sese在线| 国产精品色噜噜| 韩国三级中文字幕hd久久精品| 国产.欧美.日韩| 免费在线观看成人| 欧美三级中文字幕| 亚洲欧美日韩国产手机在线| 国产成人精品免费一区二区| 在线精品视频免费播放| 最新国产の精品合集bt伙计| 久久精品久久综合| 久久久亚洲精华液精华液精华液| 91麻豆精品在线观看| 欧美激情一区二区三区不卡| 偷拍一区二区三区| 亚洲v日本v欧美v久久精品| 亚洲欧美日韩在线播放| 中文字幕一区二区不卡| 国产日韩欧美一区二区三区乱码 | 国产精品沙发午睡系列990531| 韩国午夜理伦三级不卡影院| 精品久久久久久久久久久久久久久 | 日本女人一区二区三区| 自拍偷拍欧美精品| 日韩美女啊v在线免费观看| 国产精品青草久久| 中文字幕在线一区免费| 中文乱码免费一区二区| 中文字幕 久热精品 视频在线 | 狠狠色丁香婷综合久久| 蜜臀av一区二区| 日韩电影在线免费| 久久99精品国产麻豆婷婷洗澡| 欧美美女直播网站| 欧美日韩一区二区三区高清| 91蜜桃网址入口| 在线日韩一区二区| 欧美日韩精品专区| 欧美情侣在线播放| 欧美一区二区三区四区高清| 日韩丝袜情趣美女图片| 国产亚洲精品免费| 亚洲视频1区2区| 视频一区欧美精品| 蜜桃av噜噜一区| 成人妖精视频yjsp地址| 91福利国产精品| 日韩免费电影网站| 国产亚洲午夜高清国产拍精品| 国产精品久久久爽爽爽麻豆色哟哟 | **性色生活片久久毛片| 洋洋av久久久久久久一区| 午夜精品久久久久久久蜜桃app| 美女在线视频一区| 国产高清精品网站| 色婷婷综合五月| 日韩精品中文字幕一区二区三区| 国产婷婷色一区二区三区在线| 亚洲天堂成人在线观看| 琪琪久久久久日韩精品| 国产69精品久久777的优势| 在线看国产一区二区| 精品国产百合女同互慰| 中文字幕一区二区三区精华液| 偷拍与自拍一区| 成人app网站| 日韩你懂的在线播放| 日韩一区有码在线| 久久精品国产一区二区| 91国产福利在线| 国产欧美视频在线观看| 视频精品一区二区| 色哟哟亚洲精品| 久久九九99视频| 免费成人在线观看视频| 色综合一个色综合亚洲| 久久久久久夜精品精品免费| 亚洲国产精品视频| 91社区在线播放| 国产色一区二区| 久久av中文字幕片| 3d动漫精品啪啪一区二区竹菊| 日韩一区在线看| 风间由美一区二区三区在线观看| 欧美一区二区成人| 亚洲bdsm女犯bdsm网站| www.成人在线| 国产欧美精品一区aⅴ影院| 久久国产人妖系列| 日韩一区二区在线看| 亚洲最新在线观看| 99久久婷婷国产综合精品电影 | 亚洲视频综合在线| 成人综合婷婷国产精品久久蜜臀| 69精品人人人人| 三级欧美韩日大片在线看| 色94色欧美sute亚洲线路一ni| 国产精品另类一区| 高清免费成人av| 国产精品天天摸av网| 成人小视频在线| 国产精品色眯眯| av中文字幕亚洲| 国产精品传媒在线| jlzzjlzz亚洲女人18| 国产精品久久久久7777按摩 | 日韩欧美资源站| 男女激情视频一区| 日韩情涩欧美日韩视频| 精品一区二区三区蜜桃| 精品av综合导航| 国产91精品在线观看| 欧美国产综合色视频| 成人av网站在线观看| 亚洲丝袜另类动漫二区| 欧美在线观看一二区| 亚洲国产精品久久一线不卡| 欧美一区二区三区免费观看视频| 蜜桃av一区二区三区|