Oracle 表空間的概念


表空間

 

在數據庫系統中,存儲空間是較為重要的資源,合理利用空間,不但能節省空間,還可以提高系統的效率和工作性能。 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

 

 

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM