Oracle關於表空間的一些常用語句

表空間

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;
    1. 創建一個臨時表空間,空間大小爲 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;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章