在資料庫的邏輯結構中,表空間將不同類型的數據分別組織在一起,如系統數據、用戶數據、臨時數據、回滾數據等。在同一個表空間中,數據以資料庫對象為單位組織在一起,一般情況下一個資料庫對象對應一個段,一個表空間中包含多個段。在段中存儲資料庫對象中的數據,數據所占用的存儲空間以區為單位進行分配和回收。 一個數 ...
在資料庫的邏輯結構中,表空間將不同類型的數據分別組織在一起,如系統數據、用戶數據、臨時數據、回滾數據等。
在同一個表空間中,數據以資料庫對象為單位組織在一起,一般情況下一個資料庫對象對應一個段,一個表空間中包含多個段。
在段中存儲資料庫對象中的數據,數據所占用的存儲空間以區為單位進行分配和回收。
一個資料庫對象占用若幹個區,所以段是由若幹個區組成的。
當為資料庫對象分配存儲空間時,一次分配一個或多個區。
區是分配和回收存儲空間的基本單位,一個區是由若幹個連續的數據塊組成的。
數據塊是邏輯結構中的最小存儲單位,是Oracle讀寫數據的基本單位。
當用戶訪問數據時,伺服器進程首先將數據從數據塊讀到資料庫高速緩存中,並存儲在與數據塊大小相同的緩衝區中,然後在緩衝區中對數據進行讀寫。
資料庫中的數據在物理上是存儲在磁碟上的,需要占用一定的操作系統塊。
一個數據塊是由若幹個操作系統塊組成的,因此,數據塊的大小是操作系統塊的整數倍。
資料庫伺服器對數據塊的讀寫最終將轉化為對多個操作系統塊的讀寫。
段的管理
在表空間中,一個段一般代表一個資料庫對象,對象的所有數據都存儲在對應的段中。
一般情況下段不需要用戶自己創建,在創建資料庫對象將自動產生段。
為段所分配的空間就位於表空間的數據文件中,這些存儲空間由若幹個區組成。
段、區和數據塊之間的關係如圖所示。
段的類型
Oracle 11g支持10餘種類型的段。
通過查詢數據字典dba_segments ,可以得到當前資料庫中已經存在的段類型。
下麵是有關數據字典dba_segments的相關信息:
DBA_SEGMENTS
describes the storage allocated for all segments in the database.
Related View
USER_SEGMENTS
describes the storage allocated for the segments owned by the current user's objects. This view does not display the OWNER
, HEADER_FILE
, HEADER_BLOCK
, or RELATIVE_FNO
columns.
Column | Datatype | NULL | Description |
---|---|---|---|
|
|
Username of the segment owner |
|
|
|
Name, if any, of the segment |
|
|
|
Object Partition Name (Set to |
|
|
|
Type of segment:
|
|
|
|
Subtype of LOB segment: |
|
|
|
Name of the tablespace containing the segment |
|
|
|
ID of the file containing the segment header |
|
|
|
ID of the block containing the segment header |
|
|
|
Size, in bytes, of the segment |
|
|
|
Size, in Oracle blocks, of the segment |
|
|
|
Number of extents allocated to the segment |
|
|
|
Size in bytes requested for the initial extent of the segment at create time. (Oracle rounds the extent size to multiples of 5 blocks if the requested size is greater than 5 blocks.) |
|
|
|
Size in bytes of the next extent to be allocated to the segment |
|
|
|
Minimum number of extents allowed in the segment |
|
|
|
Maximum number of extents allowed in the segment |
|
|
|
Maximum number of blocks allowed in the segment |
|
|
|
Retention option for |
|
|
|
Minimum retention duration for |
|
|
|
Percent by which to increase the size of the next extent to be allocated |
|
|
|
Number of process freelists allocated to this segment |
|
|
|
Number of freelist groups allocated to this segment |
|
|
|
Relative file number of the segment header |
|
|
|
Buffer pool to be used for segment blocks:
|
|
|
|
Database Smart Flash Cache hint to be used for segment blocks:
Solaris and Oracle Linux functionality only. |
|
|
|
Cell flash cache hint to be used for segment blocks:
See Also: Oracle Exadata Storage Server Software documentation for more information |
|
|
|
Indicates whether the In-Memory Column Store (IM column store) is enabled ( |
|
|
|
Indicates the priority for In-Memory Column Store (IM column store) population:
|
|
|
|
Indicates how the IM column store is distributed in an Oracle Real Application Clusters (Oracle RAC) environment:
|
|
|
|
Indicates the duplicate setting for the IM column store in an Oracle RAC environment:
|
|
|
|
Indicates the compression level for the IM column store:
|
例如: