這篇文章主要介紹數(shù)據(jù)庫中表空間、段、區(qū)、塊是什么意思,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
目前創(chuàng)新互聯(lián)已為成百上千的企業(yè)提供了網(wǎng)站建設、域名、虛擬空間、網(wǎng)站托管維護、企業(yè)網(wǎng)站設計、峨山縣網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。簡介
數(shù)據(jù)塊Block是Oracle存儲數(shù)據(jù)信息的最小單位。注意,這里說的是Oracle環(huán)境下的最小單位。Oracle也就是通過數(shù)據(jù)塊來屏蔽不同操作系統(tǒng)存儲結(jié)構(gòu)的差異。無論是他們的存儲結(jié)構(gòu)和方式、甚至字符排列的方式。
Oracle所有對數(shù)據(jù)的操作和空間分配,實際上都是針對數(shù)據(jù)塊Block的操作。我們從數(shù)據(jù)表中搜索出一行,實際中Oracle就會從內(nèi)存緩沖區(qū)(或者硬盤)中讀取到該行所在的數(shù)據(jù)塊,再返回這數(shù)據(jù)塊上的指定數(shù)據(jù)行。Oracle無論是在緩沖區(qū),還是在硬盤,進行數(shù)據(jù)操作的雖小單位也就是數(shù)據(jù)塊。
參數(shù)
1、db_block_size
數(shù)據(jù)塊是有大小的,在一個數(shù)據(jù)庫建立的時候,通過參數(shù)進行設置。數(shù)據(jù)塊的大小,在一個數(shù)據(jù)庫中可以支持多個,但是一般沒有太大的意義,會給管理和調(diào)試帶來一定的負擔。
數(shù)據(jù)塊的大小是通過kb字節(jié)個數(shù)來指定的,默認為8KB。相關(guān)參數(shù)為db_block_size。
設置數(shù)據(jù)塊的大小是依據(jù)不同類型的系統(tǒng)的。如果數(shù)據(jù)塊設置比較大,那么一次讀取的數(shù)據(jù)行較多,相應對SGA內(nèi)存消耗比較大,特定查詢引發(fā)的換入換出可能較多。如果設置的過小,頻繁的IO邏輯物理讀也會引起性能問題。
2、db_file_multiblock_read_count
表示一次從物理存儲中讀取的數(shù)據(jù)塊數(shù)量。對一些數(shù)據(jù)挖掘系統(tǒng),可以考慮調(diào)節(jié)此參數(shù)略大一些。
簡介
區(qū)extent是比數(shù)據(jù)塊大一級的存儲結(jié)構(gòu),表示的是一連串連續(xù)的數(shù)據(jù)塊集合。
在進行存儲數(shù)據(jù)信息的時候,Oracle將分配數(shù)據(jù)塊進行存儲,但是不能保證所有分配的數(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)成的重要手段。
1、分區(qū)是帶有段特定性的。數(shù)據(jù)段segment是分區(qū)的上層組織單位,一個數(shù)據(jù)庫對象對應一個segement,數(shù)據(jù)庫對象是歸屬在不同的schema(owner)上的。所以,通過不同的數(shù)據(jù)段名稱、不同的owner,乃至不同的tablespace表空間信息,就可以定位到數(shù)據(jù)區(qū)extent的信息描述。
2、另一部分信息是關(guān)于該區(qū)extent的分配信息,如所在文件編號,起始數(shù)據(jù)塊block編號和數(shù)據(jù)塊數(shù)量等內(nèi)容。
簡介
數(shù)據(jù)段是與數(shù)據(jù)庫對象相對應,一般一個數(shù)據(jù)庫對象對應一個數(shù)據(jù)段。多個extent是對應一個數(shù)據(jù)段,每個數(shù)據(jù)段實際上就是數(shù)據(jù)庫一個對象的代表。
視圖
從dba_segments視圖中,可以比較清楚看清數(shù)據(jù)段的結(jié)構(gòu)。
1、從segment_type列的comment信息中,可以看出數(shù)據(jù)段的類型是多樣的。數(shù)據(jù)表、索引、回滾、聚集這些都是數(shù)據(jù)段的一種表現(xiàn)形式。同時,數(shù)據(jù)段是在數(shù)據(jù)對象創(chuàng)建的時候就已經(jīng)創(chuàng)建出來,隨著對象體積的增大,而不斷分配多個extents進行管理。
2、另一部分信息可以從dba_segments中讀出的,就是該數(shù)據(jù)對象分配的空間大小和數(shù)據(jù)塊、分區(qū)個數(shù)。使用這個視圖,可以方便的獲取到指定schema的所有對象大小。
SELECT OWNER,
SUM(BYTES) / 1024 / 1024 AS VOL,
SUM(BLOCKS) AS TOTALBLOCKS,
SUM(EXTENTS) AS TOTALEXTENTS
FROM DBA_SEGMENTS
GROUP BY OWNER
HAVING OWNER = 'SYS';
一個數(shù)據(jù)對象對應一個segment。但是,分區(qū)表的時候,一個分區(qū)要對應一個segment對象。還有就是,segment對象是可以指定存儲在那個表空間里,實現(xiàn)存儲劃分的基礎(chǔ)也就在于此。不同類型的segment劃分建立在不同的表空間里,才有可能存放在不同的文件中,最后分布在不同的物理存儲。
簡介
TableSpace是存儲結(jié)構(gòu)中的最高層結(jié)構(gòu)。建立一個表空間的時候,是需要指定存儲的文件。一個表空間可以指定多個數(shù)據(jù)文件,多個文件可以在不同的物理存儲上。但是有一點就是,表空間下一級對象數(shù)據(jù)段的存儲,是不能指定存儲在那個文件里的。所以,要想讓數(shù)據(jù)對象訪問IO負載均衡,需要指定不同的數(shù)據(jù)對象在不同的表空間里。這也就是為什么將數(shù)據(jù)表和索引建立在不同的表空間的原因。
視圖
表空間通過v$tablespace進行訪問。
數(shù)據(jù)文件通過v$datafile進行訪問
以上是“數(shù)據(jù)庫中表空間、段、區(qū)、塊是什么意思”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設公司行業(yè)資訊頻道!
網(wǎng)站欄目:數(shù)據(jù)庫中表空間、段、區(qū)、塊是什么意思-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://aaarwkj.com/article10/dddddo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供Google、網(wǎng)站改版、用戶體驗、網(wǎng)站導航、品牌網(wǎng)站制作、建站公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)