數(shù)據(jù)段是什么
發(fā)布時(shí)間:
2022-03-23
數(shù)據(jù)段是什么?數(shù)據(jù)段(即基表段),是Oracle數(shù)據(jù)庫中用于存儲基表數(shù)據(jù)的段。數(shù)據(jù)段存儲在表空間中,對應(yīng)于一個(gè)或多個(gè)數(shù)據(jù)文件(段可以來自多個(gè)文件,但段中指定的一個(gè)區(qū)只能來自一個(gè)文件)。每個(gè)基表段都有一個(gè)數(shù)據(jù)段(cluster聚簇段中,兩個(gè)基表對應(yīng)一個(gè)數(shù)據(jù)段)。每當(dāng)用戶創(chuàng)建一個(gè)基表時(shí),系統(tǒng)會在用戶默認(rèn)的表空間中創(chuàng)建一個(gè)數(shù)據(jù)段。

根據(jù)段保存對象的不同,可把段劃分為多種類型,主要包括以下幾種:
表段:最普通的一種方式。一張表即對應(yīng)一個(gè)段,存儲數(shù)據(jù)沒有順序。表中所有數(shù)據(jù)都在一個(gè)表空間中(段是不可以跨表空間的,但是可以跨文件)。
索引段:保存索引數(shù)據(jù)的段。
聚簇段(CLUSTER):在這種段中保存多張表的數(shù)據(jù)。這種情況主要是用在多張表中有相同的表數(shù)據(jù)列或多張表經(jīng)常一起使用的情況,但更新開銷大。有兩種類型的聚簇--B樹聚簇和散列聚簇。
索引組織表段(IOT):段中數(shù)據(jù)按照索引的順序存儲數(shù)據(jù)。它是一種有序存儲表。
表分區(qū)段或子分區(qū)段:一張表中的數(shù)據(jù)被劃分為多個(gè)分區(qū),每個(gè)分區(qū)對應(yīng)一個(gè)段。
索引分區(qū)段:一個(gè)索引中的數(shù)據(jù)被劃分為多個(gè)分區(qū),每個(gè)分區(qū)對應(yīng)一個(gè)段。
大對象段(LOB):表中含有大對象數(shù)據(jù)。如果對象大小大于指定的范圍,則會將對象數(shù)據(jù)單獨(dú)保存在一個(gè)段中。表中只留下指向該段的地址指針。
其他:除以上類型之外,還包括回退段、臨時(shí)段、嵌套表段(NESTED)、啟動段(BOOTSTRAP)等。從10gR2版本開始,Oracle引入了一個(gè)段顧問的作業(yè)。這個(gè)作業(yè)是完成對段的一些分析工作,評估出哪些段適合進(jìn)行壓縮、哪些段存在行鏈接等。后面會談到“行鏈接”,這里重點(diǎn)說一下壓縮問題。
Oracle的數(shù)據(jù)段壓縮技術(shù)其實(shí)是針對塊級別的數(shù)據(jù)壓縮。其原理是將塊中的重復(fù)數(shù)據(jù)通過一個(gè)符號來表示,即塊中相同的行只存儲一條,從而節(jié)約了空間。
此外,這種技術(shù)還可以使高水位線下移,使未使用的空間被表空間的其他段使用。這種技術(shù)不僅可用于表,也可用于索引。凡是需要對表、索引掃描數(shù)據(jù)段的操作都可以從段壓縮中受益。
上一篇:
數(shù)據(jù)庫分區(qū)表是什么
下一篇:
數(shù)據(jù)庫返回表中的前N行記錄