久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

數據庫中表空間、段、區、塊是什么意思

142次閱讀
沒有評論

共計 1956 個字符,預計需要花費 5 分鐘才能閱讀完成。

這篇文章主要介紹數據庫中表空間、段、區、塊是什么意思,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

一、數據塊(Block)

簡介

數據塊 Block 是 Oracle 存儲數據信息的最小單位。注意,這里說的是 Oracle 環境下的最小單位。Oracle 也就是通過數據塊來屏蔽不同操作系統存儲結構的差異。無論是他們的存儲結構和方式、甚至字符排列的方式。

Oracle 所有對數據的操作和空間分配,實際上都是針對數據塊 Block 的操作。我們從數據表中搜索出一行,實際中 Oracle 就會從內存緩沖區(或者硬盤)中讀取到該行所在的數據塊,再返回這數據塊上的指定數據行。Oracle 無論是在緩沖區,還是在硬盤,進行數據操作的雖小單位也就是數據塊。

參數

1、db_block_size

數據塊是有大小的,在一個數據庫建立的時候,通過參數進行設置。數據塊的大小,在一個數據庫中可以支持多個,但是一般沒有太大的意義,會給管理和調試帶來一定的負擔。

數據塊的大小是通過 kb 字節個數來指定的,默認為 8KB。相關參數為 db_block_size。

設置數據塊的大小是依據不同類型的系統的。如果數據塊設置比較大,那么一次讀取的數據行較多,相應對 SGA 內存消耗比較大,特定查詢引發的換入換出可能較多。如果設置的過小,頻繁的 IO 邏輯物理讀也會引起性能問題。

2、db_file_multiblock_read_count

表示一次從物理存儲中讀取的數據塊數量。對一些數據挖掘系統,可以考慮調節此參數略大一些。

二、區 extent

簡介

區 extent 是比數據塊大一級的存儲結構,表示的是一連串連續的數據塊集合。

在進行存儲數據信息的時候,Oracle 將分配數據塊進行存儲,但是不能保證所有分配的數據塊都是連續的結構。所以,出現分區 extent 的概念,表示一系列連續的數據塊集合。

視圖

視圖 dba_extents(或者 all_extents、user_extents)是我們研究分區結構和存儲構成的重要手段。

1、分區是帶有段特定性的。數據段 segment 是分區的上層組織單位,一個數據庫對象對應一個 segement,數據庫對象是歸屬在不同的 schema(owner)上的。所以,通過不同的數據段名稱、不同的 owner,乃至不同的 tablespace 表空間信息,就可以定位到數據區 extent 的信息描述。

2、另一部分信息是關于該區 extent 的分配信息,如所在文件編號,起始數據塊 block 編號和數據塊數量等內容。

三、數據段 segment

簡介

數據段是與數據庫對象相對應,一般一個數據庫對象對應一個數據段。多個 extent 是對應一個數據段,每個數據段實際上就是數據庫一個對象的代表。

視圖

從 dba_segments 視圖中,可以比較清楚看清數據段的結構。

1、從 segment_type 列的 comment 信息中,可以看出數據段的類型是多樣的。數據表、索引、回滾、聚集這些都是數據段的一種表現形式。同時,數據段是在數據對象創建的時候就已經創建出來,隨著對象體積的增大,而不斷分配多個 extents 進行管理。

2、另一部分信息可以從 dba_segments 中讀出的,就是該數據對象分配的空間大小和數據塊、分區個數。使用這個視圖,可以方便的獲取到指定 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

一個數據對象對應一個 segment。但是,分區表的時候,一個分區要對應一個 segment 對象。還有就是,segment 對象是可以指定存儲在那個表空間里,實現存儲劃分的基礎也就在于此。不同類型的 segment 劃分建立在不同的表空間里,才有可能存放在不同的文件中,最后分布在不同的物理存儲。

四、表空間 tablespace

簡介

TableSpace 是存儲結構中的最高層結構。建立一個表空間的時候,是需要指定存儲的文件。一個表空間可以指定多個數據文件,多個文件可以在不同的物理存儲上。但是有一點就是,表空間下一級對象數據段的存儲,是不能指定存儲在那個文件里的。所以,要想讓數據對象訪問 IO 負載均衡,需要指定不同的數據對象在不同的表空間里。這也就是為什么將數據表和索引建立在不同的表空間的原因。

視圖

表空間通過 v$tablespace 進行訪問。

數據文件通過 v$datafile 進行訪問

以上是“數據庫中表空間、段、區、塊是什么意思”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注丸趣 TV 行業資訊頻道!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-17發表,共計1956字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 丰宁| 池州市| 桃源县| 敦煌市| 石家庄市| 吉木乃县| 建德市| 巴林左旗| 台东县| 珠海市| 射洪县| 西乡县| 白河县| 花垣县| 新河县| 六盘水市| 永兴县| 手游| 祥云县| 柏乡县| 台山市| 平陆县| 永安市| 吴堡县| 太保市| 建瓯市| 邹城市| 武功县| 虎林市| 南靖县| 嵊州市| 万安县| 蚌埠市| 永春县| 东丽区| 崇信县| 广汉市| 博兴县| 肇州县| 锦屏县| 龙州县|