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]
[extent management [dictionary | local [autoallocate | uniform [size integer [k | m]]]]]
其中,tablespace_name是將要建立的表空間的名稱,該名稱在資料庫中是唯一的,並且命名必須符合命名規則。
path/filename: 資料檔案的存放路徑和名稱。當使用關鍵字reuse時表示若該檔案存在,則清除該檔案再重新建立該檔案;如該檔案不存在,則建立新檔案。
off/on: 禁止或允許自動擴充套件資料檔案。若選則off, 則禁止自動擴充套件;若選擇on,則允許自動擴充套件資料檔案
maxsize umlimited | integer[k | m]:指定允許分配給資料檔案的最大磁碟空間,其中unlimited表示沒有限制。
minmum extent:指定最小的長度,預設為作業系統和資料庫塊。
online:在建立表空間後使該錶空間立即可以被授權使用者訪問,這是預設設定。
offline:則表示不可用
logging/nologging:表示將來的表、索引等是否需要進行日誌處理,預設為需要
extent management:指定如何管理表空間的盤區。
dictionary:使用字典表來管理表空間,這是預設設定。
local:指定本地管理表空間
autoallocate:指定表空間由系統管理,使用者不能指定盤區尺寸。
uniform:使用size位元組的統一盤區來管理表空間。預設的size是1mb。
注意:如果指定了local,就不能指定default storage storage_clause 和temporary。
default storage storage_clause:為在該錶空間建立的全部物件指定預設的儲存引數。storage_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]
)
如:
建立臨時表空間時只需要在tablespace前加上temporary,並且將datafile改為tempfile,如:
create temporary tablespace ts_temp tempfile 'd:\oracle\oradata\orcl\ts_temp.dbf' size 256m autoextend on next 100m maxsize 2048m;
(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)範圍-列表分割槽:首先使用範圍方法將資料進行分割槽,然後在每個分區內,使用列表方法將其分成子分割槽
Oracle表空間 段 區和塊簡述
本文 自 在oracle學習過程中,儲存結構,表段區塊可能是每個初學者都要涉及到的概念。表空間 段 分割槽和資料塊分別表示了oracle進行資料儲存的不同層次和結構。了解清楚這幾個結構,有助於我們奠定乙個穩固的學習基礎,而且對於理解oracle工作原理也有重要作用。本文採用從小到大,逐步拓展的方式介...
Oracle學習(一)表空間和區 2
注意 如果指定了local,就不能指定default storage storage clause 和temporary。default storage storage clause 為在該錶空間建立的全部物件指定預設的儲存引數。storage clause的語法格式如下 storage initi...
Oracle 表空間和臨時表空間
表空間 此空間是用來進行資料儲存的 表 function 儲存過程等 所以是實際物理儲存區域。臨時表空間 主要用途是在資料庫進行排序運算 如建立索引 order by及group by distinct union intersect minus sort merge及join analyze命令 ...