国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

Oracle的表空間和區

2024-08-29 13:28:28
字體:
來源:轉載
供稿:網友

本文講解了Oracle中表空間及分區的種類和創建方法。

1、表空間:表空間是數據庫的邏輯劃分,一個表空間只屬于一個數據庫。每個表空間由一個或多個數據文件組成。

表空間中其他邏輯結構的數據存儲在這些數據文件中。在Oracle安裝完成后,會自動建立多個表空間,
主要有:

(1)System表空間:該表空間用于存放Oracle系統內部表和數據字典的數據,如表名、列名、用戶名等。

(2)undo表空間:該表空間是存儲撤銷信息的表空間。當用戶對數據庫表進行修改(insert,update,delete)時,Oracle會自動使用undo表空間來臨時存放修改前的數據。當所進行的修改完成并提交后,系統根據需要保留修改前數據的時間長短來釋放undo表空間的部分空間。

(3)users表空間:該空間是給用戶使用的表空間。

(4)temporary表空間:該表空間是供用戶臨時使用的,如進行排序、匯總等操作時。

可以使用OEM(Oracle Enterprise Manager)管理表空間,也可以使用命令管理表空間。利用OEM管理表空間是非常簡單的,只需要根據系統提示進行操作就可以了。利用create tablespace 命令會創建一個讀/寫表空間,以后可以利用alter tablespace 語句來使表空間脫機或聯機、給它添加數據文件或使它成為只讀表空間。也可以利用drop tablespace 語句從數據庫中撤銷表空間。

(1)利用create tablespace命令創建表空間。使用該命令的用戶必須具有創建表空間的權限。

語法格式:

create tablespace tablespace_name datafile 'path/fileName' [size integer [K | M]] [reuse]
[autoextend [off | on [next integer [K | M]]] [maxsize [unlimited | integer [K | M]]]]
[minmum extent integer [K | M]]
[default storage storage_clause]
[online | offline]
[logging | nologging]
[permanent | temporary]
[extent management [dictionary | local [autoallocate | uniform [size integer [K | M]]]]]

其中,tablespace_name是將要創建的表空間的名稱,該名稱在數據庫中是唯一的,并且命名必須符合命名規則。

path/fileName: 數據文件的存放路徑和名稱。當使用關鍵字reuse時表示若該文件存在,則清除該文件再重新建立該文件;如該文件不存在,則建立新文件。

off/on: 禁止或允許自動擴展數據文件。若選則off, 則禁止自動擴展;若選擇on,則允許自動擴展數據文件

next:表示當需要更多的磁盤空間時,一次給數據文件分配的磁盤空間,以KB或MB為單位。

maxsize umlimited | integer[K | M]:指定允許分配給數據文件的最大磁盤空間,其中unlimited表示沒有限制。

minmum extent:指定最小的長度,默認為操作系統和數據庫塊。

online:在創建表空間后使該表空間立即可以被授權用戶訪問,這是默認設置。

offline:則表示不可用

logging/nologging:表示將來的表、索引等是否需要進行日志處理,默認為需要

permanent:指定表空間將保存永久對象,這是默認設置

temporary:指定表空間將用于保存臨時對象

extent management:指定如何管理表空間的盤區。

dictionary:使用字典表來管理表空間,這是默認設置。

local:指定本地管理表空間

autoallocate:指定表空間由系統管理,用戶不能指定盤區尺寸。

uniform:使用size字節的統一盤區來管理表空間。默認的size是1MB。

注意:如果指定了local,就不能指定default storage storage_clause 和temporary。

default storage storage_clause:為在該表空間創建的全部對象指定默認的存儲參數。

torage_clause的語法格式如下:

storage(
initial integer[K|M]
next integer[K|M]
minextents integer | unlimited
maxextents integer
pctincrease integer
freelists integer
freelist groups integer
optimal [integer[K|M] | null]
)

(2)利用alter tablespace命令管理表空間。

語法格式:

alter tablespace tablespace_name
[add dataFile | tempFile 'path/fileName' [size integer [K | M]] 
[reuse] 
[autoextend [off | on [next integer [K | M]] maxsize [unlimited | integer [K | M]]]]
[rename dataFile 'path/fileName',...n to 'path/fileName',...n]
[default storage storage_clause]
[online | offline [normal | temporary | immediate]]
[logging | nologging]
[read only | write]
[permanent]
[temporary] 

2、分區:在非常大的數據庫中,通常可以通過把一個大表的數據分成多個小表來簡化數據庫的管理,這些小表叫做分區,除了對表分區外,還可以對索引進行分區。分區不僅簡化了數據庫的管理,還改善了應用性能。在Oracle中,還可以細分分區,創建子分區。

并不是所有的表列都可以進行分區,只有日期型(date)或二進制大對象(blob)等數據類型的表列可以分區。

Oracle有以下幾種分區方法:

(1)范圍分區:根據列值的范圍將行映射到分區。

(2)散列分區:散列分區提供了一種方法,可在指定數量的分區間平均分布數據。這種方法將根據分區關鍵字的散列值將行映射到分區。

(3)列表分區:列表分區可以顯式地控制如何把行映射到分區。

(4)范圍-散列分區:首先使用范圍方法將數據進行分區,然后在每個分區內,使用散列方法將其分成子分區。

(5)范圍-列表分區:首先使用范圍方法將數據進行分區,然后在每個分區內,使用列表方法將其分成子分區

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 淅川县| 上虞市| 南部县| 祁门县| 张家口市| 库车县| 鄂伦春自治旗| 瓦房店市| 小金县| 磐安县| 许昌县| 理塘县| 梅河口市| 正阳县| 五指山市| 全椒县| 临潭县| 炉霍县| 富源县| 旺苍县| 光泽县| 武义县| 西安市| 鹤壁市| 大安市| 红原县| 渭南市| 安西县| 宽甸| 金坛市| 尼木县| 浦东新区| 福清市| 石河子市| 涡阳县| 柘荣县| 衡水市| 鄂温| 昆山市| 定州市| 石狮市|