表空間
Oracle 11g 默認的表空間及其說明
表 空 間 | 說 明 |
---|---|
EXAMPLE | 如果安裝時選擇“實例方案”,則此表空間存放各樣例的數據 |
SYSAUX | SYSTEM 表空間的輔助空間。主要用於存儲除數據字典外的其他數據對象,這樣可以減少 SYSTEM表空間的負荷 |
SYSTEM | 存放數據字典,包括表、視圖、存儲過程的定義等 |
TEMP | 存放 SQL 語句處理的表和索引的信息,比如,數據排序就佔用此空間 |
UNDOTBS1 | 存放撤銷數據的表空間 |
USERS | 通常用於存放“應用系統”所使用的數據庫對象 |
查詢
- 1.查詢表空間 dba_data_files
select tablespace_name,file_name,bytes from dba_data_files order by tablespace_name;
- 2.查詢 GKFXB 表空間內存放的數據對象及其類型和擁有者
select segment_type,segment_name,owner from dba_segments where tablespace_name='GKFXB';
- 3.查詢 SYSAUX 表空間所存放的用戶及其所擁有的對象數量
select owner as 用戶,count(segment_name) as 對象數量 from dba_segments where tablespace_name='SYSAUX' group by owner;
- 4.查詢系統的臨時表空間信息,包括臨時文件、空間大小和空間名稱
select file_name,bytes,tablespace_name from dba_temp_files;
創建表空間
- 語法
CREATE [SMALLFILE/BIGFILE] TABLESPACE tablespace_name
DATAFILE ‘/path/filename’ SIZE num[k/m] REUSE
[,’/path/filename’ SIZE num[k/m] REUSE]
[,…]
[AUTOEXTEND [ON | OFF] NEXT num[k/m]
[MAXSIZE num[k/m] | UNLIMITED]
[MININUM EXTENT num[k/m]]
[DEFAULT STORAGE storage]
[ONLINE | OFFLINE]
[LOGGING | NOLOGGING]
[PERMANENT | TEMPORARY]
[EXTENT MANAGEMENT DICTIONARY | LOCAL [AUTOALLOCATE | UNIFORM SIZE num[k/m]]]
- 1.創建一個大小爲 10MB 的表空間,其擴展大小爲 256K
create tablespace tbs_test_1 datafile 'D:\OracleFiles\OracleData\datafile1.dbf'
size 10m -- 初始大小
extent management local uniform size 256K; --EXTENT MANAGEMENT DICTIONARY | LOCAL:指定表空間的擴展方式是使用數據字典管理還是本地化管理,默認爲本地化管理。
- 2.創建一個大小爲 10MB 的表空間,其擴展大小爲自動管理
create tablespace tbs_test_2 datafile 'D:\OracleFiles\OracleData\datafile2.dbf'
size 10m
extent management local autoallocate;
- 3.創建一個表空間,其擴展大小爲自動管理,其段空間管理方式爲手動
create tablespace tbs_test_3 datafile 'D:\OracleFiles\OracleData\datafile3.dbf'
size 20m
extent management local autoallocate
segment space management manual;
- 4.創建一個大小爲 20MB 的表空間,其擴展大小爲自動管理,其段空間管理方式爲自動
create tablespace tbs_test_4 datafile 'D:\OracleFiles\OracleData\datafile4.dbf'
size 20m
extent management local autoallocate
segment space management auto;
-
- 創建一個臨時表空間,空間大小爲 300MB
create temporary tablespace temp_01 tempfile 'D:\OracleFiles\tempfiles\temp_01.tpf' size 300m;
表空間的操作
在 Oracle 數據庫中創建用戶(使用 CREATE USER 語句)時,如果不指定表空間,則默認的臨時
表空間是 TEMP,默認的永久表空間是 SYSTEM,這樣就導致應用系統與 Oracle 系統競爭使用 SYSTEM
表空間,會極大地影響 Oracle 系統的執行效率。
- 1.表空間 tbs_example 設置爲默認的永久表空間
alter database default tablespace tbs_example
- 2.將臨時表空間 temp_1 設置爲默認的臨時表空間
alter database default temprory tablespace temp_1
- 3.修改 tbs_test_3 表空間爲只讀狀態
alter tablespace tbs_test_3 read only;
- 4.修改 tbs_test_3 表空間爲可讀寫狀態
alter tablespace tbs_test_3 read write;
- 5.把 tbs_test_3 表空間重命名爲 tbs_test_3_new
alter tablespace tbs_test_3 rename to tbs_test_3_new;
- 6.把數據文件 datafile3.dbf(其所屬的表空間是 tbs_test_3)的大小由原來的 20MB 修改爲 100MB
alter database datafile 'D:\OracleFiles\OracleData\datafile3.dbf'RESIZE 100m;
- 7.刪除表空間 tbs_test_2 及其包含的所有內容
drop tablespace tbs_test_1
including contents
cascade constraints;