1. 程式人生 > >Oracle 表空間的概念

Oracle 表空間的概念

系統 進行 定義 taf 查看表 創建 int strong 內存

表空間

在數據庫系統中,存儲空間是較為重要的資源,合理利用空間,不但能節省空間,還可以提高系統的效率和工作性能。 Oracle 可以存放海量數據,所有數據都在數據文件中存儲。而數據文件大小受操作系統限制,並且過大的數據文件對數據的存取性能影響非常大。同時Oracle 是跨平臺的數據庫, Oracle 數據可以輕松的在不同平臺上移植,那麽如何才能提供統一存取格式的大容量呢? Oracle 采用表空間來解決。
表空間只是一個邏輯概念,若幹操作系統文件(文件可以不是很大)可以組成一個表空間。表空間統一管理空間中的數據文件,一個數據文件只能屬於一個表空間。一個數據庫空間由若幹個表空間組成。如圖所示:

技術分享圖片

Oracle 中所有的數據(包括系統數據),全部保存在表空間中,常見的表空間有:

??系統表空間:存放系統數據,系統表空間在數據庫創建時創建。表空間名稱為
SYSTEM。存放數據字典視圖以及數據庫結構等重要系統數據信息,在運行時如
SYSTEM 空間不足,對數據庫影響會比較大,雖然在系統運行過程中可以通過命
令擴充空間,但還是會影響數據庫的性能,因此有必要在創建數據庫時適當的把數
據文件設置大一些。
??TMEP 表空間:臨時表空間,安裝數據庫時創建,可以在運行時通過命令增大臨時
表空間。臨時表空間的重要作用是數據排序。比如當用戶執行了諸如 Order by
命令後,服務器需要對所選取數據進行排序,如果數據很大,內存的排序區可能裝


不下太大數據,就需要把一些中間的排序結果寫在硬盤的臨時表空間中。
??用戶表自定義空間:用戶可以通過 CREATE TABLESPACE 命令創建表空間

創建表空間

--創建表空間 linux centos6.9

--創建一個表空間,包含兩個數據文件大小分別是 10MB, 5MB,要求 extent 的大小統一為 1M

CREATE TABLESPACE nod_tablespace

DATAFILE ‘/home/oracle/tablespace/A.ORA‘ SIZE 10M,

‘/home/oracle/tablespace/B.ORA‘ SIZE 5M

EXTENT MANAGEMENT LOCAL

UNIFORM SIZE 1M

技術分享圖片

windows版本創建表空間

技術分享圖片

請註意:只有管理員才可以增加表空間

當表空間不足的時候可以用alter tablespace命令向表空間中追加數據文件並擴充表空間

修改表空間大小

--擴充表空間

ALTER TABLESPACE nod_tablespace

ADD DATAFILE ‘/home/oracle/tablespace/C.ORA‘ SIZE 100M

--查看表空間情況

SELECT SUM(bytes) / (1024 * 1024) AS free_space, tablespace_name

FROM dba_free_space

GROUP BY tablespace_name;

創建用戶時可以為用戶指定某一表空間,那麽該用戶下所有數據庫對象默認都存儲在該空間中

指定用戶的表空間為

create user nod identified by nod default tablespace nod_tablespace;

技術分享圖片

技術分享圖片

創建表指定表空間

create table t2(id int)

tablespace nod_tablespace

表和索引一旦創建,表空間無法進行二次修改

Oracle 表空間的概念