Oracle 表空間、段、區(qū)、塊概述_第1頁
Oracle 表空間、段、區(qū)、塊概述_第2頁
Oracle 表空間、段、區(qū)、塊概述_第3頁
Oracle 表空間、段、區(qū)、塊概述_第4頁
Oracle 表空間、段、區(qū)、塊概述_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

Oracle表空間、段、區(qū)和塊簡述本文采用從小到大,逐步拓展的方式介紹四個結(jié)構(gòu),并且與Schema、數(shù)據(jù)文件的區(qū)別進(jìn)行對比。數(shù)據(jù)塊(Block)數(shù)據(jù)塊Block是Oracle存儲數(shù)據(jù)信息的最小單位。注意,這里說的是Oracle環(huán)境下的最小單位。Oracle也就是通過數(shù)據(jù)塊來屏蔽不同操作系統(tǒng)存儲結(jié)構(gòu)的差異。無論是Windows環(huán)境,還是Unix/Linux環(huán)境,他們的操作系統(tǒng)存儲結(jié)構(gòu)和方式、甚至字符排列的方式都是不同的。Oracle利用數(shù)據(jù)塊將這些差異加以屏蔽,全部數(shù)據(jù)操作采用對Oracle塊的操作,相當(dāng)于是一個層次的抽象。Oracle所有對數(shù)據(jù)的操作和空間分配,實(shí)際上都是針對數(shù)據(jù)塊Block的操作。我們從數(shù)據(jù)表中搜索出一行,實(shí)際中Oracle就會從內(nèi)存緩沖區(qū)(或者硬盤)中讀取到該行所在的數(shù)據(jù)塊,再返回這數(shù)據(jù)塊上的指定數(shù)據(jù)行。Oracle無論是在緩沖區(qū),還是在硬盤,進(jìn)行數(shù)據(jù)操作的雖小單位也就是數(shù)據(jù)塊。數(shù)據(jù)塊是有大小的,在一個數(shù)據(jù)庫建立的時候,通過參數(shù)進(jìn)行設(shè)置。注意,在Oracle數(shù)據(jù)庫參數(shù)中,只有數(shù)據(jù)塊大小的參數(shù)是建庫之后不能進(jìn)行修改的。數(shù)據(jù)塊的大小,在一個數(shù)據(jù)庫中可以支持多個,但是一般沒有太大的意義,會給管理和調(diào)試帶來一定的負(fù)擔(dān)。數(shù)據(jù)塊的大小是通過kb字節(jié)個數(shù)來指定的,默認(rèn)為8KB。相關(guān)參數(shù)為db_block_size,下面是查看block大小的語句。SQL>showparameterdb_block_size;NAMETYPE VALUEdbblocksizeinteger8192//1024X8設(shè)置數(shù)據(jù)塊的大小是依據(jù)不同類型的系統(tǒng)的。如果數(shù)據(jù)塊設(shè)置比較大,那么一次讀取的數(shù)據(jù)行較多,相應(yīng)對SGA內(nèi)存消耗比較大,特定查詢引發(fā)的換入換出可能較多。如果設(shè)置的過小,頻繁的IO邏輯物理讀也會引起性能問題。與數(shù)據(jù)塊有關(guān)系的另一個參數(shù)就是db_file_multiblock_read_count,表示一次從物理存儲中讀取的數(shù)據(jù)塊數(shù)量。對一些數(shù)據(jù)挖掘系統(tǒng),可以考慮調(diào)節(jié)此參數(shù)略大一止匕二O接下來,我們看比block更高的一個單位,區(qū)extent。區(qū)extent區(qū)extent是比數(shù)據(jù)塊大一級的存儲結(jié)構(gòu),表示的是一連串連續(xù)的數(shù)據(jù)塊集合。我們知道,物理存儲通常是隨機(jī)的讀寫過程。即使在同一個文件里,我們也不能保證相同的一個信息是存儲在絕對連續(xù)的物理存儲空間的。Oracle數(shù)據(jù)存儲同樣如此。在進(jìn)行存儲數(shù)據(jù)信息的時候,Oracle將分配數(shù)據(jù)塊進(jìn)行存儲,但是不能保證所有分配的數(shù)據(jù)塊都是連續(xù)的結(jié)構(gòu)。所以,出現(xiàn)分區(qū)extent的概念,表示一系列連續(xù)的數(shù)據(jù)塊集合。視圖dba_extents(或者all_extents、user_extents)是我們研究分區(qū)結(jié)構(gòu)和存儲構(gòu)成的重要手段。SQL>descdba_extents;NameType NullableDefaultCommentsOWNERVARCHAR2(30)YOwnerofthesegmentassociatedwiththeextentSEGMENT_NAMEVARCHAR2(81)YNameofthesegmentassociatedwiththeextentPARTITION_NAMEVARCHAR2(30)YPartition/SubpartitionName,ifany,ofthesegmentSEGMENT_TYPEVARCHAR2(18)YTypeofthesegmentTABLESPACE_NAMEVARCHAR2(30)YNameofthetablespacecontainingtheextentEXTENT_IDNUMBER YExtentnumberinthesegmentFILE_IDNUMBERYNameofthefilecontainingtheextentBLOCK_IDNUMBERYStartingblocknumberoftheextentBYTESNUMBERYSizeoftheextentinbytesBLOCKSNUMBERYSizeoftheextentinORACLEblocksRELATIVEFNONUMBERYRelativenumberofthefilecontainingthesegmentheader從視圖中,我們可以清晰看出分區(qū)的幾個特點(diǎn)。首先分區(qū)是帶有段特定性的。數(shù)據(jù)段segment是分區(qū)的上層組織單位,一個數(shù)據(jù)庫對象對應(yīng)一個segement,數(shù)據(jù)庫對象是歸屬在不同的schema(owner)上的。所以,通過不同的數(shù)據(jù)段名稱、不同的owner,乃至不同的tablespace表空間信息,就可以定位到數(shù)據(jù)區(qū)extent的信息描述。另一部分信息是關(guān)于該區(qū)extent的分配信息,如所在文件編號,起始數(shù)據(jù)塊block編號和數(shù)據(jù)塊數(shù)量等內(nèi)容。數(shù)據(jù)段segment數(shù)據(jù)段是與數(shù)據(jù)庫對象相對應(yīng),一般一個數(shù)據(jù)庫對象對應(yīng)一個數(shù)據(jù)段。多個extent是對應(yīng)一個數(shù)據(jù)段,每個數(shù)據(jù)段實(shí)際上就是數(shù)據(jù)庫一個對象的代表。從dbasegments視圖中,可以比較清楚看清數(shù)據(jù)段的結(jié)構(gòu)。SQL>descdba_segments;Name Type NullableDefaultCommentsOWNER VARCHAR2(30)Y Usernameofthesegmentowner

SEGMENT_NAMEsegmentVARCHAR2(81)YName,ifany,ofthePARTITION_NAMEsegmentVARCHAR2(30)YPartition/SubpartitionName,ifany,oftheSEGMENT_TYPEVARCHAR2(18)YTypeofsegment:"TABLE","CLUSTER","INDEX","ROLLBACK"DEFERREDROLLBACK","TEMPORARY","SPACEHEADER","TYPE2UNDO"or"CACHE"TABLESPACE_NAMEsegmentVARCHAR2(30)YNameofthetablespacecontainingtheHEADER_FILEheaderNUMBERYIDofthefilecontainingthesegmentHEADER_BLOCKheaderNUMBERYIDoftheblockcontainingthesegmentBYTESsegmentNUMBERYSize,inbytes,oftheBLOCKSsegmentNUMBERYSize,inOracleblocks,oftheEXTENTSsegmentNUMBERYNumberofextentsallocatedtotheINITIAL_EXTENTsegmentNUMBERYSize,inbytes,oftheinitialextentoftheNEXT_EXTENTsegmentNUMBERYSize,inbytes,ofthenextextenttobeallocatedtotheMIN_EXTENTSsegmentNUMBERYMinimumnumberofextentsallowedintheMAXEXTENTSNUMBERMaximumnumberofextentsallowedintheMAXEXTENTSNUMBERMaximumnumberofextentsallowedinthesegmentPCT_INCREASENUMBERYPercentbywhichtoincreasethesizeofthenextextenttoallocatedFREELISTSNUMBERYNumberofprocessfreelistsallocatedinthissegmentFREELIST_GROUPSNUMBERYNumberoffreelistgroupsallocatedinthissegmentRELATIVE_FNONUMBERYRelativenumberofthefilecontainingthesegmentheaderBUFFER_POOLVARCHAR2(7)YThedefaultbufferpooltobeusedforsegmentsblocks從segment_type列的comment信息中,可以看出數(shù)據(jù)段的類型是多樣的。任何種類的數(shù)據(jù)庫對象,本質(zhì)上都是一種數(shù)據(jù)段。數(shù)據(jù)表、索引、回滾、聚集這些都是數(shù)據(jù)段的一種表現(xiàn)形式。同時,數(shù)據(jù)段是在數(shù)據(jù)對象創(chuàng)建的時候就已經(jīng)創(chuàng)建出來,隨著對象體積的增大,而不斷分配多個extents進(jìn)行管理。另一部分信息可以從dba_segments中讀出的,就是該數(shù)據(jù)對象分配的空間大小和數(shù)據(jù)塊、分區(qū)個數(shù)。使用這個視圖,可以方便的獲取到指定schema的所有對象大小。SQL>selectowner,sum(bytes)/1024/1024asvol,sum(blocks)astotalblocks,sum(extents)astotalextentsfromdba_segmentsgroupbyownerhavingwner='SYS';OWNER VOLTOTALBLOCKSTOTALEXTENTSSYS 585.5 74944 3248上面查詢,說明SYS的schema,所占用空間585.5MB,包括74944個數(shù)據(jù)塊和3248個分區(qū)。一個對象創(chuàng)建出來之后,在segment層次上是分配一個分區(qū)extent和八個數(shù)據(jù)塊block。有一個問題需要注意,通常我們的數(shù)據(jù)段是與數(shù)據(jù)對象相關(guān)。一個數(shù)據(jù)對象對應(yīng)一個segmento但是,分區(qū)表的時候,一個分區(qū)要對應(yīng)一個segment對象。還有就是,segment對象是可以指定存儲在那個表空間里,實(shí)現(xiàn)存儲劃分的基礎(chǔ)也就在于此。不同類型的segment劃分建立在不同的表空間里,才有可能存放在不同的文件中,最后分布在不同的物理存儲。分區(qū)實(shí)際上就是存在分開存儲的可能。一般一個對象是不會跨物理存儲進(jìn)行存放的,分區(qū)表是對應(yīng)的多個segment。所以,分區(qū)表分開存儲空間是可能的。表空間tablespaceTableSpace是存儲結(jié)構(gòu)中的最高層結(jié)構(gòu)。建立一個表空間的時候,是需要指定存儲的文件。一個表空間可以指定多個數(shù)據(jù)文件,多個文件可以在不同的物理存儲上。也就是說,表空間是可以跨物理存儲的。但是有一點(diǎn)就是,表空間下一級對象數(shù)據(jù)段的存儲,是不能指定存儲在那個文件里的。所以,要想讓數(shù)據(jù)對象訪問10負(fù)載均衡,需要指定不同的數(shù)據(jù)對象在不同的表空間里。這也就是為什么將數(shù)據(jù)表和索引建立在不同的表空間的原因。表空間通過v$tablespace進(jìn)行訪問。SQL>descv$tablespace;Name TypeNullableDefaultCommentsTS# NUMBERYNAME VARCHAR2(30)YINCLUDED_IN_DATABASE_BACKUPVARCHAR2(3

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論