多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全I(xiàn)T社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > 數(shù)據(jù)庫 > 數(shù)據(jù)庫應(yīng)用 > 存儲空間管理

存儲空間管理

來源:程序員人生   發(fā)布時間:2016-07-21 09:02:06 閱讀次數(shù):3223次
數(shù)據(jù)庫的邏輯結(jié)構(gòu)中,表空間將不同類型的數(shù)據(jù)分別組織在1起,如系統(tǒng)數(shù)據(jù)、用戶數(shù)據(jù)、臨時數(shù)據(jù)、回滾數(shù)據(jù)等。
在同1個表空間中,數(shù)據(jù)以數(shù)據(jù)庫對象為單位組織在1起,1般情況下1個數(shù)據(jù)庫對象對應(yīng)1個段,1個表空間中包括多個段。
在段中存儲數(shù)據(jù)庫對象中的數(shù)據(jù),數(shù)據(jù)所占用的存儲空間以區(qū)為單位進(jìn)行分配和回收。

1個數(shù)據(jù)庫對象占用若干個區(qū),所以段是由若干個區(qū)組成的。
當(dāng)為數(shù)據(jù)庫對象分配存儲空間時,1次分配1個或多個區(qū)。
區(qū)是分配和回收存儲空間的基本單位,1個區(qū)是由若干個連續(xù)的數(shù)據(jù)塊組成的。
數(shù)據(jù)塊是邏輯結(jié)構(gòu)中的最小存儲單位,是Oracle讀寫數(shù)據(jù)的基本單位。

當(dāng)用戶訪問數(shù)據(jù)時,服務(wù)器進(jìn)程首先將數(shù)據(jù)從數(shù)據(jù)塊讀到數(shù)據(jù)庫高速緩存中,并存儲在與數(shù)據(jù)塊大小相同的緩沖區(qū)中,然后在緩沖區(qū)中對數(shù)據(jù)進(jìn)行讀寫。
數(shù)據(jù)庫中的數(shù)據(jù)在物理上是存儲在磁盤上的,需要占用1定的操作系統(tǒng)塊。

1個數(shù)據(jù)塊是由若干個操作系統(tǒng)塊組成的,因此,數(shù)據(jù)塊的大小是操作系統(tǒng)塊的整數(shù)倍。
數(shù)據(jù)庫服務(wù)器對數(shù)據(jù)塊的讀寫終究將轉(zhuǎn)化為對多個操作系統(tǒng)塊的讀寫。

段的管理
在表空間中,1個段1般代表1個數(shù)據(jù)庫對象,對象的所有數(shù)據(jù)都存儲在對應(yīng)的段中。
1般情況下段不需要用戶自己創(chuàng)建,在創(chuàng)建數(shù)據(jù)庫對象將自動產(chǎn)生段。
為段所分配的空間就位于表空間的數(shù)據(jù)文件中,這些存儲空間由若干個區(qū)組成。
段、區(qū)和數(shù)據(jù)塊之間的關(guān)系如圖所示。


段的類型
Oracle 11g支持10余種類型的段。
通過查詢數(shù)據(jù)字典dba_segments ,可以得到當(dāng)前數(shù)據(jù)庫中已存在的段類型。
下面是有關(guān)數(shù)據(jù)字典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
OWNER VARCHAR2(128)   Username of the segment owner
SEGMENT_NAME VARCHAR2(128)   Name, if any, of the segment
PARTITION_NAME VARCHAR2(128)   Object Partition Name (Set to NULL for nonpartitioned objects)
SEGMENT_TYPE VARCHAR2(18)   Type of segment:
  • NESTED TABLE
  • TABLE
  • TABLE PARTITION
  • CLUSTER
  • LOBINDEX
  • INDEX
  • INDEX PARTITION
  • LOBSEGMENT
  • TABLE SUBPARTITION
  • INDEX SUBPARTITION
  • LOB PARTITION
  • LOB SUBPARTITION
  • ROLLBACK
  • TYPE2 UNDO
  • DEFERRED ROLLBACK
  • TEMPORARY
  • CACHE
  • SPACE HEADER
  • UNDEFINED
SEGMENT_SUBTYPE VARCHAR2(10)   Subtype of LOB segment: SECUREFILE, ASSM, MSSM, andNULL
TABLESPACE_NAME VARCHAR2(30)   Name of the tablespace containing the segment
HEADER_FILE NUMBER   ID of the file containing the segment header
HEADER_BLOCK NUMBER   ID of the block containing the segment header
BYTES NUMBER   Size, in bytes, of the segment
BLOCKS NUMBER   Size, in Oracle blocks, of the segment
EXTENTS NUMBER   Number of extents allocated to the segment
INITIAL_EXTENT NUMBER   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.)
NEXT_EXTENT NUMBER   Size in bytes of the next extent to be allocated to the segment
MIN_EXTENTS NUMBER   Minimum number of extents allowed in the segment
MAX_EXTENTS NUMBER   Maximum number of extents allowed in the segment
MAX_SIZE NUMBER   Maximum number of blocks allowed in the segment
RETENTION VARCHAR2(7)   Retention option for SECUREFILE segment
MINRETENTION NUMBER   Minimum retention duration for SECUREFILE segment
PCT_INCREASE NUMBER   Percent by which to increase the size of the next extent to be allocated
FREELISTS NUMBER   Number of process freelists allocated to this segment
FREELIST_GROUPS NUMBER   Number of freelist groups allocated to this segment
RELATIVE_FNO NUMBER   Relative file number of the segment header
BUFFER_POOL VARCHAR2(7)   Buffer pool to be used for segment blocks:
  • DEFAULT
  • KEEP
  • RECYCLE
FLASH_CACHE VARCHAR2(7)   Database Smart Flash Cache hint to be used for segment blocks:
  • DEFAULT
  • KEEP
  • NONE
Solaris and Oracle Linux functionality only.
CELL_FLASH_CACHE VARCHAR2(7)   Cell flash cache hint to be used for segment blocks:
  • DEFAULT
  • KEEP
  • NONE
See Also: Oracle Exadata Storage Server Software documentation for more information
INMEMORY VARCHAR2(8)   Indicates whether the In-Memory Column Store (IM column store) is enabled (ENABLED) or disabled (DISABLED) for this segment
INMEMORY_PRIORITY1 VARCHAR2(8)   Indicates the priority for In-Memory Column Store (IM column store) population:
  • LOW
  • MEDIUM
  • HIGH
  • CRITICAL
  • NONE
  • NULL
INMEMORY_DISTRIBUTE1 VARCHAR2(15)   Indicates how the IM column store is distributed in an Oracle Real Application Clusters (Oracle RAC) environment:
  • AUTO
  • BY ROWID RANGE
  • BY PARTITION
  • BY SUBPARTITION
INMEMORY_DUPLICATE1 VARCHAR2(13)   Indicates the duplicate setting for the IM column store in an Oracle RAC environment:
  • NO DUPLICATE
  • DUPLICATE
  • DUPLICATE ALL
INMEMORY_COMPRESSION1 VARCHAR2(17)   Indicates the compression level for the IM column store:
  • NO MEMCOMPRESS
  • FOR DML
  • FOR QUERY [ LOW | HIGH ]
  • FOR CAPACITY [ LOW | HIGH ]
  • NULL

例如:
SELECT DISTINCT segment_type FROM dba_segments;
1.表段(TABLE)
表段是用來存儲表中的數(shù)據(jù)的,這是最多見的1種段。
在創(chuàng)建表時將自動創(chuàng)建1個同名的段,表中的數(shù)據(jù)就存儲在數(shù)據(jù)段中。
2.索引段(INDEX)
索引是依賴于表的數(shù)據(jù)庫對象,它的功能是加快表的查詢速度。
當(dāng)用戶履行CREATEINDEX命令創(chuàng)建索引時,在數(shù)據(jù)庫中將產(chǎn)生1個索引段。
當(dāng)用戶在表上定義主鍵束縛和唯1性束縛時也將自動產(chǎn)生索引段。
索引段的名稱與索引相同,索引中的數(shù)據(jù)就存儲在索引段中。

3.臨時段
當(dāng)用戶履行排序等操作時,將產(chǎn)生大量的臨時數(shù)據(jù)。
臨時數(shù)據(jù)將首先存儲在PGA的排序區(qū)中,如果排序區(qū)的大小不足以寄存這些臨時數(shù)據(jù)時,將使用臨時段。
1般情況下,用戶在履行以下操作時可能用到臨時段:

SELECT ??? FROM ??? ORDER BY ???
SELECT ??? FROM ??? GROUP BY ???
SELECT DISTINCT ??? FROM ???
SELECT ??? UNION
CREATE INDEX ???
ANALYZE

臨時段1般位于專門的臨時表空間中。
如果沒有專門的臨時表空間,數(shù)據(jù)庫服務(wù)器將把SYSTEM表空間作為用戶的臨時表空間。
臨時段不是1種永久性的段,而是隨著用戶的排序操作的進(jìn)行而動態(tài)產(chǎn)生和消失的。
當(dāng)排序操作開始時,在臨時表空間中將產(chǎn)生1個臨時段,在排序結(jié)束時臨時段將被刪除。
如果在SYSTEM表空間中存儲這些臨時數(shù)據(jù),將致使大量的存儲碎片的產(chǎn)生,從而大大下降數(shù)據(jù)庫服務(wù)器的性能。
因此, Oracle建議創(chuàng)建專門的臨時表空間。

4.回滾段(ROLLBACK)
回滾段是用來存儲回滾數(shù)據(jù)的。
如果使用自動方式管理回滾數(shù)據(jù),需要在數(shù)據(jù)庫中創(chuàng)建1個UNDO表空間,隨著用戶事務(wù)的履行,在UNDO表空間中將自動產(chǎn)生回滾段。
5.分區(qū)表段(TABLE PARTITION)
數(shù)據(jù)庫中可以將1個大表分成幾個分區(qū)( PARTITION ),每一個分區(qū)對應(yīng)1個段。
這些分區(qū)表段可以存儲在同1個表空間中,也能夠存儲在不同的表空間中。
分區(qū)表主要利用于數(shù)據(jù)倉庫,它的主要作用是縮小數(shù)據(jù)庫查詢的范圍,加快查詢的速度。
例如,某公司的客戶表中存儲了上萬條客戶信息,假定將這個表分成13個區(qū),將客戶信息依照其姓名的首字母不同而分別存儲在不同的分區(qū)中。
姓名以“A”和“B ”開始的客戶存儲在第1個分區(qū)中,以“C”和“D”開始的存儲在第2個區(qū)中,依此類推。
這樣1個表中的數(shù)據(jù)就被分開存儲在13 個分區(qū)中,如果要查詢1個客戶的信息,只需要在它所在的分區(qū)中查詢便可,查詢的范圍將大約縮小為原來的1/13 。

6.分區(qū)索引段(INDEX PARTITION)
與表的分區(qū)類似,索引也能夠分區(qū)。
將1個索引劃分為幾個分區(qū),每一個分區(qū)對應(yīng)1個段,索引的數(shù)據(jù)將分別存儲在這些段中。
對索引進(jìn)行分區(qū)的目的是為了加快查詢索引的速度。

需要注意的是,只有對表進(jìn)行分區(qū)后,才能在表上創(chuàng)建分區(qū)索引。
7.LOB段
如果在表中定義了CLOB 或BLOB 類型的列,在表中就能夠存儲大文本或2進(jìn)制數(shù)據(jù),如文檔、圖象、聲音等。
LOB數(shù)據(jù)其實不是直接存儲在表段中,而是單獨(dú)寄存在1個LOB 段中,在表中僅僅寄存LOB 段的指針。

8.LOB索引段
如果在表上定義了LOB 類型的列,在數(shù)據(jù)庫中將自動創(chuàng)建LOB 段,同時自動創(chuàng)建LOB索引段。
LOB索引段的作用是加快LOB 列的查詢速度。

9.簇段(CLUSTER)
簇是1種數(shù)據(jù)庫對象,它的作用是將邏輯上相干的數(shù)據(jù)組織在1起,簇中的數(shù)據(jù)來自1個或多個表。
每一個簇對應(yīng)1個簇段,在創(chuàng)建簇時將自動創(chuàng)建簇段,并且簇段的名稱與簇完全相同。
使用簇可以加快多表查詢的速度。

10.索引組織表(INDEX ORGANIZED TABLE)段
如果常常要根據(jù)1個表的主鍵查詢數(shù)據(jù),可以將主鍵列上的索引與表放在1個段中,這類表稱為索引組織表,它被存儲在1個表段中,這類表段就是索引組織表段。
索引組織表段的主要作用是加快基于主鍵的查詢速度。
假定在數(shù)據(jù)庫中創(chuàng)建1個表,在表上創(chuàng)建1個索引,在表中包括1個LOB列,那末創(chuàng)建表的結(jié)果是產(chǎn)生了4個段:表段、索引段、LOB段和LOB索引段。
圖表示這4個段之間的關(guān)系。


段空間的管理
1般來講,段不需要用戶專門創(chuàng)建,當(dāng)用戶創(chuàng)建1個數(shù)據(jù)庫對象時,在數(shù)據(jù)庫中將自動產(chǎn)生對應(yīng)的段。
臨時段和回滾段比較特殊,臨時段位于臨時表空間中,它是隨著用戶的排序等操作的進(jìn)行而動態(tài)創(chuàng)建和消失的。
回滾段位于UNDO表空間中,并且隨著用戶事務(wù)的履行而動態(tài)產(chǎn)生和消失。
在本地管理表空間中,區(qū)的分配策略有自動方式和手工方式兩種。

如果采取自動方式(AUTOALLOCATE ),數(shù)據(jù)庫服務(wù)器將決定區(qū)的大小,并自動進(jìn)行區(qū)的分配和回收,區(qū)的大小是可變的,默許的區(qū)大小為64KB 。
如果采取手工方式,則需要通過UNIFORM 指定區(qū)的大小,默許為1MB 。
在創(chuàng)建本地管理表空間時,還可使用SEGMENT SPACE MANAGEMENT子句指定段空間的管理方式。
如果采取手工方式,則表空間將為每一個段保護(hù)1個空閑列表( Free List ),它位于數(shù)據(jù)文件的頭部,在空閑列表中記錄當(dāng)前數(shù)據(jù)文件中所有的空閑塊,段利用空閑列表管理塊的分配和回收。
如果選擇自動方式,段將采取位圖的方式管理塊的分配和回收。

為了對段中數(shù)據(jù)塊的使用進(jìn)行控制,在段中設(shè)置了1個HWM (High Water Mark )。
HWM可以認(rèn)為是1個指針,在段剛被創(chuàng)建時, HWM位于段的開始位置

在HWM之上是沒有被格式化,尚不能寫入數(shù)據(jù)的數(shù)據(jù)塊,而在HWM之下的數(shù)據(jù)塊有以下幾種情況:
·已包括數(shù)據(jù)。
·之前曾包括數(shù)據(jù),但后來數(shù)據(jù)被刪除。
·已被格式化,且狀態(tài)為空閑的。
·還沒有被格式化。

為了給用戶數(shù)據(jù)分配數(shù)據(jù)塊,在段中還設(shè)置了1個低HWM ,位于低HWM之下的數(shù)據(jù)塊要末是已包括數(shù)據(jù)的,要末是曾包括數(shù)據(jù),但后來數(shù)據(jù)被刪除的。
對1個用戶事務(wù)而言,可用的數(shù)據(jù)塊就是那些位于低HWM 和HWM之間的數(shù)據(jù)塊。
當(dāng)用戶向段中寫入數(shù)據(jù)時,服務(wù)器進(jìn)程將在低HWM 和HWM之間查找那些已被格式化的數(shù)據(jù)塊,將數(shù)據(jù)寫入這些數(shù)據(jù)塊。
如果沒有足夠的數(shù)據(jù)塊可用,服務(wù)器進(jìn)程將在這個范圍內(nèi)查找那些還沒有被格式化的數(shù)據(jù)塊,對其進(jìn)行格式化,然后將數(shù)據(jù)寫入。
如果這樣的數(shù)據(jù)塊還不能滿足要求,服務(wù)器進(jìn)程將把HWM 向上移動,為這次事務(wù)分配其他還沒有格式化的數(shù)據(jù)塊,然后對其進(jìn)行格式化,并將數(shù)據(jù)寫入。

在將數(shù)據(jù)寫入數(shù)據(jù)塊以后,服務(wù)器進(jìn)程將把低HWM 向上移動,使其指向第1個可用的數(shù)據(jù)塊。
數(shù)據(jù)塊的分配情況如圖所示。



區(qū)的管理
區(qū)是Oracle數(shù)據(jù)庫對象分配存儲空間的基本單位。
當(dāng)用戶創(chuàng)建表、索引、簇等數(shù)據(jù)庫對象時,數(shù)據(jù)庫服務(wù)器將為該對象對應(yīng)的段分配若干個區(qū),以存儲該對象的數(shù)據(jù)。
當(dāng)段的空間被消耗完時,可以進(jìn)行擴(kuò)大,數(shù)據(jù)庫服務(wù)器將為該段分配新的區(qū)。
當(dāng)1個數(shù)據(jù)庫對象被刪除時,它所占用的區(qū)將被釋放,數(shù)據(jù)庫服務(wù)器負(fù)責(zé)回收這些區(qū),并在適當(dāng)?shù)臅r機(jī)將這些空閑辨別配給其他數(shù)據(jù)庫對象。

區(qū)的分配
在本地管理表空間中,區(qū)的大小要末由數(shù)據(jù)庫服務(wù)器自動指定,要末由數(shù)據(jù)庫管理員指定。
當(dāng)在表空間中創(chuàng)建表、索引等數(shù)據(jù)庫對象時,數(shù)據(jù)庫服務(wù)器將依照指定的大小為段分配相應(yīng)數(shù)量的區(qū),在默許情況只分配1個初始區(qū),雖然在這個區(qū)中還沒有包括數(shù)據(jù),但這個區(qū)不能分配給其他數(shù)據(jù)庫對象。
當(dāng)初始區(qū)被寫滿后,數(shù)據(jù)庫服務(wù)器將根據(jù)需要為段分配其他的區(qū)。
在表空間的每一個數(shù)據(jù)文件的頭部,都有1個位圖,用來控制塊的分配。

當(dāng)為段分配1個區(qū)時,數(shù)據(jù)庫服務(wù)器將在位圖中查找可用的數(shù)據(jù)塊,將它們分配這個區(qū)。
首先我們履行下面的語句來創(chuàng)建本地管理表空間ts4:

CREATE TABLESPACE TS4 DATAFILE 'C:\Users\john\Desktop\tbs\ts4_1.dbf' SIZE 1M
EXTENT MANAGEMENT LOCAL AUTOALLOCATE;

由于采取了自動分配方式( AUTOALLOCATE ),因此在表空間ts4 中所有區(qū)的大小默許都是64KB 。
接下來我們在表空間ts4 中創(chuàng)建表tab3:

CREATE TABLE tab3 (col INT) TABLESPACE ts4;
這樣將為段TAB3分配1個區(qū),大小為64KB ,占用8個數(shù)據(jù)塊(每一個數(shù)據(jù)塊大小為8KB )。
履行下面的查詢語句,將得到為段TAB3 分配得區(qū)的信息:

SELECT bytes, blocks, extents FROM dba_segments WHERE segment_name='TAB3';
1個段所占用的區(qū)的詳細(xì)信息可以通過查詢數(shù)據(jù)字典DBA_EXTENTS取得。
下面是有關(guān)數(shù)據(jù)字典DBA_EXTENTS的信息。
DBA_EXTENTS describes the extents comprising(構(gòu)成) the segments in all tablespaces in the database.
Note that if a data file (or entire tablespace) is offline in a locally managed tablespace, you will not see any extent information. If an object has extents in an online file of the tablespace, you will see extent information about the offline data file. However, if the object is entirely in the offline file, a query of this view will not return any records.
Related View
USER_EXTENTS describes the extents comprising the segments owned by the current user's objects. This view does not display the OWNER,FILE_ID, BLOCK_ID, or RELATIVE_FNO columns.
Column Datatype NULL Description
OWNER VARCHAR2(128)   Owner of the segment associated with the extent
SEGMENT_NAME VARCHAR2(128)   Name of the segment associated with the extent
PARTITION_NAME VARCHAR2(128)   Object Partition Name (Set to NULL for nonpartitioned objects)
SEGMENT_TYPE VARCHAR2(18)   Type of the segment: INDEX PARTITION, TABLE PARTITION
TABLESPACE_NAME VARCHAR2(30)   Name of the tablespace containing the extent
EXTENT_ID NUMBER   Extent number in the segment
FILE_ID NUMBER   File identifier number of the file containing the extent
BLOCK_ID NUMBER   Starting block number of the extent
BYTES NUMBER   Size of the extent in bytes
BLOCKS NUMBER   Size of the extent in Oracle blocks
RELATIVE_FNO NUMBER   Relative file number of the first extent block

例如,下面的SELECT語句用于查詢段TAB3所占用的區(qū)的ID 、大小、區(qū)中所包括數(shù)據(jù)塊的數(shù)目和第1個數(shù)據(jù)塊的ID:
SELECT extent_id, bytes/1024 ||'K' KBytes, blocks, block_id FROM dba_extents WHERE segment_name='TAB3';
區(qū)的回收
在1般情況下,從段中刪除數(shù)據(jù)時,數(shù)據(jù)所占用的空間并沒有被釋放,除非這個數(shù)據(jù)庫對象被刪除。
在以下幾種情況中,會產(chǎn)生區(qū)的回收:
·1個對象被刪除。
.對表進(jìn)行整理。
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 欧美性猛交乱大交xxxx | 久久久久国产精品 | 国产啪视频1000部免费视频 | 国产福利免费看 | 成人欧美一级毛片免费观看 | 亚洲天堂视频在线 | 亚洲精品综合一区二区三区在线 | 欧美日本一区二区三区生 | 国产成人久久精品激情91 | 国产成人福利 | 亚洲欧美四级在线播放 | 欧美一区二区精品 | 欧美浮力第一页 | 国产成人综合亚洲欧洲色就色 | japanese日本护士com | 欧美一级做一级爱a做片性 欧美一级做一级做片性十三 | a丫久久久久久一级毛片 | 用劲好爽再深点视频 | 一级女性全黄久久生活片免费 | 91免费福利精品国产 | 欧美成人精品高清在线观看 | 性福利视频 | 欧美日韩一区二区在线视频播放 | 秋霞免费手机理论视频在线观看 | 激情粉嫩精品国产尤物 | 一区二区三区四区无限乱码 | 日韩亚洲一区中文字幕在线 | 女同舌吻janpan | 在线免费看a爱片 | 在线免费激情视频 | 日本最新伦中文字幕 | 久久综合九色 | 欧美18vide0sex性欧美在线 | 欧美乱乱| 国产嫩草影院精品免费网址 | 精品久久综合一区二区 | 欧美不卡视频 | 羞羞视频免费网站入口 | 欧美激情一区二区三区在线播放 | 国产欧美视频一区二区三区 | 日本黄色免费片 |