Oracle 01表空間和區

2021-08-26 22:33:34 字數 3482 閱讀 6789

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命令 ...