本Oracle教程解釋了如何使用Oracle CREATE TABLESPACE語句以及語法和示例。
CREATE TABLESPACE語句用於在存儲模式對象的Oracle數據庫中分配空間。
CREATE TABLESPACE語句可以用來創建3種表空間:
- 永久表空間
- 臨時表空間
- 撤消表空間
下面我們分別來看看這3種表空間。
1. 永久表空間
永久表空間包含存儲在數據文件中的持久性模式對象。
創建永久表空間時,CREATE TABLESPACE語句的語法是:
CREATE
[ SMALLFILE | BIGFILE ]
TABLESPACE tablespace_name
{ DATAFILE { [ 'filename' | 'ASM_filename' ]
[ SIZE integer [ K | M | G | T | P | E ] ]
[ REUSE ]
[ AUTOEXTEND
{ OFF
| ON [ NEXT integer [ K | M | G | T | P | E ] ]
[ MAXSIZE { UNLIMITED | integer [ K | M | G | T | P | E ] } ]
}
]
| [ 'filename | ASM_filename'
| ('filename | ASM_filename'
[, 'filename | ASM_filename' ] )
]
[ SIZE integer [ K | M | G | T | P | E ] ]
[ REUSE ]
}
{ MINIMUM EXTENT integer [ K | M | G | T | P | E ]
| BLOCKSIZE integer [ K ]
| { LOGGING | NOLOGGING }
| FORCE LOGGING
| DEFAULT [ { COMPRESS | NOCOMPRESS } ]
storage_clause
| { ONLINE | OFFLINE }
| EXTENT MANAGEMENT
{ LOCAL
[ AUTOALLOCATE
| UNIFORM
[ SIZE integer [ K | M | G | T | P | E ] ]
]
| DICTIONARY
}
| SEGMENT SPACE MANAGEMENT { AUTO | MANUAL }
| FLASHBACK { ON | OFF }
[ MINIMUM EXTENT integer [ K | M | G | T | P | E ]
| BLOCKSIZE integer [ K ]
| { LOGGING | NOLOGGING }
| FORCE LOGGING
| DEFAULT [ { COMPRESS | NOCOMPRESS } ]
storage_clause
| { ONLINE | OFFLINE }
| EXTENT MANAGEMENT
{ LOCAL
[ AUTOALLOCATE | UNIFORM [ SIZE integer [ K | M | G | T | P | E ] ] ]
| DICTIONARY
}
| SEGMENT SPACE MANAGEMENT { AUTO | MANUAL }
| FLASHBACK { ON | OFF }
]
}
參數
- SMALLFILE - 包含
1022個數據或臨時文件的表空間(每個文件最多可以有400萬個塊)。這是要創建的最常見的表空間大小。 - BIGFILE - 只包含一個數據或臨時文件的表空間(該文件最多可以有
400萬個塊)。
提示:如果省略
SMALLFILE或BIGFILE選項,Oracle數據庫將使用默認的表空間類型。
- tablespace_name - 要創建的表空間的名稱。
- storage_clause -
storage_clause的語法是:STORAGE ({ INITIAL integer [ K | M | G | T | P | E ] | NEXT integer [ K | M | G | T | P | E ] | MINEXTENTS integer | MAXEXTENTS { integer | UNLIMITED } | PCTINCREASE integer | FREELISTS integer | FREELIST GROUPS integer | OPTIMAL [ integer [ K | M | G | T | P | E ] | NULL ] | BUFFER_POOL { KEEP | RECYCLE | DEFAULT } } [ INITIAL integer [ K | M | G | T | P | E ] | NEXT integer [ K | M | G | T | P | E ] | MINEXTENTS integer | MAXEXTENTS { integer | UNLIMITED } | PCTINCREASE integer | FREELISTS integer | FREELIST GROUPS integer | OPTIMAL [ integer [ K | M | G | T | P | E ] | NULL ] | BUFFER_POOL { KEEP | RECYCLE | DEFAULT } ] )
示例 - 永久表空間
以下是創建一個簡單的永久表空間的CREATE TABLESPACE語句:
CREATE TABLESPACE tbs_perm_01
DATAFILE 'tbs_perm_01.dat'
SIZE 20M
ONLINE;
這個CREATE TABLESPACE語句創建一個名為tbs_perm_01的永久表空間,其中有一個名為tbs_perm_01.dat的數據文件。
以下是創建一個永久表空間的CREATE TABLESPACE語句,當需要更多空間時將會擴展它:
CREATE TABLESPACE tbs_perm_02
DATAFILE 'tbs_perm_02.dat'
SIZE 10M
REUSE
AUTOEXTEND ON NEXT 10M MAXSIZE 200M;
2. 臨時表格空間
臨時表空間包含存儲在會話期間存在的臨時文件中的模式對象。
創建臨時表空間時,CREATE TABLESPACE語句的語法是:
CREATE
[ SMALLFILE | BIGFILE ]
TEMPORARY TABLESPACE tablespace_name
[ TEMPFILE { [ 'filename' | 'ASM_filename' ]
[ SIZE integer [ K | M | G | T | P | E ] ]
[ REUSE ]
[ AUTOEXTEND
{ OFF
| ON [ NEXT integer [ K | M | G | T | P | E ] ]
[ MAXSIZE { UNLIMITED | integer [ K | M | G | T | P | E ] } ]
}
]
| [ 'filename | ASM_filename'
| ('filename | ASM_filename'
[, 'filename | ASM_filename' ] )
]
[ SIZE integer [ K | M | G | T | P | E ] ]
[ REUSE ]
}
[ TABLESPACE GROUP { tablespace_group_name | '' } ]
[ EXTENT MANAGEMENT
{ LOCAL
[ AUTOALLOCATE | UNIFORM [ SIZE integer [ K | M | G | T | P | E ] ] ]
| DICTIONARY
} ]
參數說明
- SMALLFILE - 包含
1022個數據或臨時文件的表空間(每個文件最多可以有400萬個塊)。這是要創建的最常見的表空間大小。 -
BIGFILE - 只包含一個數據或臨時文件的表空間(該文件最多可以有
400萬個塊)。提示:如果省略
SMALLFILE或BIGFILE選項,Oracle數據庫將使用默認的表空間類型。 -
tablespace_name - 要創建的表空間的名稱。
示例 - TEMPORARY TABLESPACE
以下是創建臨時表空間的CREATE TABLESPACE語句:
CREATE TEMPORARY TABLESPACE tbs_temp_01
TEMPFILE 'tbs_temp_01.dbf'
SIZE 5M
AUTOEXTEND ON;
此CREATE TABLESPACE語句創建一個名為tbs_temp_01的臨時表空間,其中有一個名為tbs_temp_01.dbf的臨時文件。
3. UNDO表空間
如果Oracle數據庫以自動撤消管理模式運行,則會創建撤消表空間來管理撤消數據。
CREATE
[ SMALLFILE | BIGFILE ]
UNDO TABLESPACE tablespace_name
[ DATAFILE { [ 'filename' | 'ASM_filename' ]
[ SIZE integer [ K | M | G | T | P | E ] ]
[ REUSE ]
[ AUTOEXTEND
{ OFF
| ON [ NEXT integer [ K | M | G | T | P | E ] ]
[ MAXSIZE { UNLIMITED | integer [ K | M | G | T | P | E ] } ]
}
]
| [ 'filename | ASM_filename'
| ('filename | ASM_filename'
[, 'filename | ASM_filename' ] )
]
[ SIZE integer [ K | M | G | T | P | E ] ]
[ REUSE ]
}
[ EXTENT MANAGEMENT
{ LOCAL
[ AUTOALLOCATE | UNIFORM [ SIZE integer [ K | M | G | T | P | E ] ] ]
| DICTIONARY
} ]
[ RETENTION { GUARANTEE | NOGUARANTEE } ]
參數說明
- SMALLFILE - 包含
1022個數據或臨時文件的表空間(每個文件最多可以有400萬個塊)。這是要創建的最常見的表空間大小。 -
BIGFILE - 只包含一個數據或臨時文件的表空間(該文件最多可以有
400萬個塊)。提示:如果省略
SMALLFILE或BIGFILE選項,Oracle數據庫將使用默認的表空間類型。 -
tablespace_name - 要創建的表空間的名稱。
示例 - UNDO TABLESPACE
以下是創建撤消表空間的CREATE TABLESPACE語句:
CREATE UNDO TABLESPACE tbs_undo_01
DATAFILE 'tbs_undo_01.f'
SIZE 5M
AUTOEXTEND ON
RETENTION GUARANTEE;
這個CREATE TABLESPACE語句創建一個名為tbs_undo_01的撤銷表空間,其大小為5MB,並且有一個名為tbs_undo_01.f的數據文件。
